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

Откуда: Касимов
Сообщений: 982
Добрый день.
Подскажите пожалуйста как правильно вывести подытоги в запросе.
Первый вариант у меня вот такой, но он не совсем правильный

declare @t table (ID int, sum money, date datetime)
insert @t values (1, 100, '20110101'), (2, 200, '20110101'), (3, 140, '20110102');
with k (ID, sum, date)
AS
(
select ID, sum, date from @t
union all
select null, sum(sum), date from @t GROUP by date
)
SELECT ID, sum, date FROM k Order by date, id

в результате получается:

ID sum date
----------- --------------------- -----------------------
NULL 300,00 2011-01-01 00:00:00.000
1 100,00 2011-01-01 00:00:00.000
2 200,00 2011-01-01 00:00:00.000
NULL 140,00 2011-01-02 00:00:00.000
3 140,00 2011-01-02 00:00:00.000

а требуется:


ID sum date
----------- --------------------- -----------------------
1 100,00 2011-01-01 00:00:00.000
2 200,00 2011-01-01 00:00:00.000
NULL 300,00 2011-01-01 00:00:00.000
3 140,00 2011-01-02 00:00:00.000
NULL 140,00 2011-01-02 00:00:00.000

Может быть есть у кого-то идеи?
30 окт 11, 14:40    [11522451]     Ответить | Цитировать Сообщить модератору
 Re: Вывести подытоги в запросе  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
SELECT ID, sum, date FROM k Order by date, isnull(id, 10000)
30 окт 11, 15:10    [11522509]     Ответить | Цитировать Сообщить модератору
 Re: Вывести подытоги в запросе  [new]
invm
Member

Откуда: Москва
Сообщений: 9833
declare @t table (ID int, sum money, date datetime)
insert @t values (1, 100, '20110101'), (2, 200, '20110101'), (3, 140, '20110102');
with k (ID, sum, date, [order])
AS
(
select ID, sum, date, 0 from @t
union all
select null, sum(sum), date, 1 from @t GROUP by date
)
SELECT ID, sum, date FROM k Order by date, [order], id
30 окт 11, 15:13    [11522516]     Ответить | Цитировать Сообщить модератору
 Re: Вывести подытоги в запросе  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
shady
Может быть есть у кого-то идеи?


declare @t table (ID int, sum money, date datetime)
insert @t values (1, 100, '20110101'), (2, 200, '20110101'), (3, 140, '20110102');
select id, date, sum(sum) from @t
GROUP BY GROUPING SETS((id, date), (date))
30 окт 11, 15:16    [11522522]     Ответить | Цитировать Сообщить модератору
 Re: Вывести подытоги в запросе  [new]
shady
Member

Откуда: Касимов
Сообщений: 982
Knyazev Alexey,

Точно! Спасибо!
30 окт 11, 15:37    [11522563]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить