Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Вывод результатов + сумма результатов в одном SELECT  [new]
bloodrain
Member

Откуда:
Сообщений: 107
Нужно вывести список заказов и сумму заказов за определенный период. Группировки результатов нет. Делать через UNION не хочется. Подскажите пути решения.
18 авг 09, 17:31    [7553066]     Ответить | Цитировать Сообщить модератору
 Re: Вывод результатов + сумма результатов в одном SELECT  [new]
analitik
Member

Откуда: Сами мы не местные
Сообщений: 94
bloodrain,
Потерев хрустальный шар, могу предложить аналитические функции
18 авг 09, 17:34    [7553082]     Ответить | Цитировать Сообщить модератору
 Re: Вывод результатов + сумма результатов в одном SELECT  [new]
bloodrain
Member

Откуда:
Сообщений: 107
analitik,

Результат должен быть вида:
a1 a2
1   2
3   4
5   6

9   12

Тоесть, 9 и 12 это сумма прошлых 3 строк. База 9ка. Если функции будут аналитичискими то ничего страшного :(
18 авг 09, 17:38    [7553107]     Ответить | Цитировать Сообщить модератору
 Re: Вывод результатов + сумма результатов в одном SELECT  [new]
Полночный
Member

Откуда:
Сообщений: 312
bloodrain,
См. rollup, grouping sets.
18 авг 09, 17:38    [7553108]     Ответить | Цитировать Сообщить модератору
 Re: Вывод результатов + сумма результатов в одном SELECT  [new]
bloodrain
Member

Откуда:
Сообщений: 107
Полночный
bloodrain,
См. rollup, grouping sets.


Насколько я помню то они используются только с group by :(
18 авг 09, 17:39    [7553112]     Ответить | Цитировать Сообщить модератору
 Re: Вывод результатов + сумма результатов в одном SELECT  [new]
Полночный
Member

Откуда:
Сообщений: 312
bloodrain
Насколько я помню то они используются только с group by :(

Вам результат или отсутствие group by?
WITH Dat AS (SELECT 1 Val_1, 111 Val_2 FROM Dual UNION ALL
             SELECT 2, 222 FROM Dual UNION ALL
             SELECT 3, 333 FROM Dual UNION ALL
             SELECT 4, 444 FROM Dual
            )
SELECT sum (Dat.Val_1) Val_1
     , sum (Dat.Val_2) Val_2
  FROM Dat
 GROUP BY grouping sets ((Val_1, Val_2), ())
 ORDER BY grouping (Dat.Val_1);
18 авг 09, 17:48    [7553168]     Ответить | Цитировать Сообщить модератору
 Re: Вывод результатов + сумма результатов в одном SELECT  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
bloodrain
Полночный
bloodrain,
См. rollup, grouping sets.
Насколько я помню то они используются только с group by :(
А что мешает сделать group by? Какие-то политические разногласия? :) На всякий случай группировка не обяазтельно схлопывает данные, если соответствующим образом написать :)
18 авг 09, 17:48    [7553169]     Ответить | Цитировать Сообщить модератору
 Re: Вывод результатов + сумма результатов в одном SELECT  [new]
bloodrain
Member

Откуда:
Сообщений: 107
Полночный
bloodrain
Насколько я помню то они используются только с group by :(

Вам результат или отсутствие group by?
WITH Dat AS (SELECT 1 Val_1, 111 Val_2 FROM Dual UNION ALL
             SELECT 2, 222 FROM Dual UNION ALL
             SELECT 3, 333 FROM Dual UNION ALL
             SELECT 4, 444 FROM Dual
            )
SELECT sum (Dat.Val_1) Val_1
     , sum (Dat.Val_2) Val_2
  FROM Dat
 GROUP BY grouping sets ((Val_1, Val_2), ())
 ORDER BY grouping (Dat.Val_1);


А если кроме цифир должны присутсвовать Val_2 навзание товаров?
18 авг 09, 18:10    [7553284]     Ответить | Цитировать Сообщить модератору
 Re: Вывод результатов + сумма результатов в одном SELECT  [new]
suPPLer
Member

Откуда: Харків, Україна
Сообщений: 7794
Блог
bloodrain,

ну так добавьте это название в SELECT и в GROUPING SETS().
18 авг 09, 18:45    [7553407]     Ответить | Цитировать Сообщить модератору
 Re: Вывод результатов + сумма результатов в одном SELECT  [new]
bloodrain
Member

Откуда:
Сообщений: 107
suPPLer
bloodrain,

ну так добавьте это название в SELECT и в GROUPING SETS().

Если честно не совсем понимаю как это сделать, результат должен быть такой:
Товар1 1   2
Товар2 3   4
Товар3 5   6
Всего:  9   12
18 авг 09, 18:52    [7553426]     Ответить | Цитировать Сообщить модератору
 Re: Вывод результатов + сумма результатов в одном SELECT  [new]
Andrey.L
Member

Откуда: Харьков
Сообщений: 1546
bloodrain,

А что на входе, мы так и не увидели...
18 авг 09, 19:05    [7553478]     Ответить | Цитировать Сообщить модератору
 Re: Вывод результатов + сумма результатов в одном SELECT  [new]
suPPLer
Member

Откуда: Харків, Україна
Сообщений: 7794
Блог
bloodrain,

WITH Dat AS (SELECT 1 Val_1, 'a' name, 111 Val_2 FROM Dual UNION ALL
             SELECT 1 Val_1, 'a' name, 111 Val_2 FROM Dual UNION ALL
             SELECT 2, 'b', 222 FROM Dual UNION ALL
             SELECT 3, 'c', 333 FROM Dual UNION ALL
             SELECT 4, 'd', 444 FROM Dual
            )
SELECT Dat.Val_1 Val_1, nvl(name, 'Total:') name
     , sum (Dat.Val_2) Val_2
  FROM Dat
 GROUP BY grouping sets((val_1, name, val_2), ())
 ORDER BY Val_1 nulls last;
18 авг 09, 19:13    [7553509]     Ответить | Цитировать Сообщить модератору
 Re: Вывод результатов + сумма результатов в одном SELECT  [new]
bloodrain
Member

Откуда:
Сообщений: 107
suPPLer,

Спасибо большое. Вроде дошло потроху :)
18 авг 09, 19:38    [7553589]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить