Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите с агрегированным запросом / 9 сообщений из 9, страница 1 из 1
25.07.2002, 11:06
    #32038692
Splain
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с агрегированным запросом
Привет всем.

у меня есть поля в таблице
DATE NAME Count
1 aaa 1
1 aab 2
2 bbb 23
3 ccc 3
..............

Как мне получить выборку:
DATE NAME COUNT ALL
1 aaa 1 1
1 aab 2 3
2 bbb 23 26
3 ccc 3 29

Заранее спасибо за советы.

А вообще задача - есть 2 таблицы - платежей и счетов-фактур. Нужно по ним составить акт сверки. Это так, для пояснения. :)
...
Рейтинг: 0 / 0
25.07.2002, 13:53
    #32038764
Linker
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с агрегированным запросом
Судя по всему, тебе важен здесь порядок записей по дате, иначе сводка ляжет не шефу на стол, а в мусорную корзину. :-))

select t.date, t.name, t.count (select nvl(sum(t1.count)+t.count,0) from my_tabla t1 where t1.date < t.date) cumulative from my_tabla t
order by t.date

И еще одно - date, count - это зарезервированные слова. Если не трудно - обойдись в названиях без них. :-)
...
Рейтинг: 0 / 0
25.07.2002, 14:22
    #32038786
Splain
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с агрегированным запросом
Спасибо. Все заработало на ура.
Замечание принято :)
...
Рейтинг: 0 / 0
25.07.2002, 15:16
    #32038801
Linker
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с агрегированным запросом
Закралась одна маленькая ошибка. Первая строка неправильно итог отображает.
В новой редакции запрос выглядит так:


select t.date, t.name, t.count (select nvl(sum(t1.count),0)+t.count from my_tabla t1 where t1.date < t.date) cumulative from my_tabla t
order by t.date

Теперь ВСЕ работает! :-)
...
Рейтинг: 0 / 0
25.07.2002, 15:17
    #32038802
Linker
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с агрегированным запросом
Закралась одна маленькая ошибка. Первая строка неправильно итог отображает.
В новой редакции запрос выглядит так:


select t.date, t.name, t.count (select nvl(sum(t1.count),0)+t.count from my_tabla t1 where t1.date < t.date) cumulative from my_tabla t
order by t.date

Теперь ВСЕ работает! :-)
...
Рейтинг: 0 / 0
26.07.2002, 11:03
    #32038989
Splain
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с агрегированным запросом
Нашлось более оригинальное решение.

SELECT Count1, DATE1, NAME,
SUM(Count1)OVER (ORDER BY Date1 ASC ROWS UNBOUNDED PRECEDING ) AS Sum1
FROM A
ORDER BY Date1 ASC;

Главное, работает быстро :)
...
Рейтинг: 0 / 0
26.07.2002, 11:18
    #32038997
none
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с агрегированным запросом
Господа, а что это за SQL такой, который позволяет все эти:
OVER
ROWS UNBOUNDED PRECEDING
CUMULATIVE
не ставить запятые между колонками

Это на Девятке такие извращения пошли?
...
Рейтинг: 0 / 0
26.07.2002, 15:39
    #32039141
Splain
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с агрегированным запросом
С этого же сайта ссылка.

http://www.olap.ru/trends/news/m010122726.asp

В общем, мне наверно следовало бы почитать это перед тем как тему постить, но с такой задачей столкнулся впервые, поэтому даже не знал, с какой стороны подойти.

В предыдущих примерах одна запятая пропущена, ну и
CUMULATIVE - это новое название поля, следует понимать как as CUMULATIVE. У меня в восьмерке работает :)
...
Рейтинг: 0 / 0
30.07.2002, 11:01
    #32039586
another guest
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с агрегированным запросом
А чем плох в данном случае классический GROUP BY ? Сильно ли он тормозит, по сравнению с OLAP наворотами? А select в select разве лучше?

[select t.date1,t.name,t.count1,nvl(sum(t1.count1),0)+t.count1 as sum1 from tabl t, tabl t1
where t1.date1(+)<t.date1 group by t.date1, t.name, t.count1 order by t.date1]
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите с агрегированным запросом / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]