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

Откуда:
Сообщений: 82
Не пойму как использовать ROLLUP без аггрегационной функции. Мне нужно всего лишь получить итоговой строчку по заданной группировке. База SQL 2000.

Вот покажу на примере. Если взять таблицу:
А A 1
A C 3
A F 4
B E 2
B R 1
C T 3

И чтобы получилось:
А A 1
A C 3
A F 4
A 8
B E 2
B R 1
B 3
C T 3
C 3

Куда копать? Не использовать же для этого курсор... :(
30 сен 09, 14:29    [7724873]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму как исп ROLLUP без аггрег. функции  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

> Мне нужно всего лишь получить итоговой строчку по заданной группировке.

все равно использовать агрегатную функцию.

Posted via ActualForum NNTP Server 1.4

30 сен 09, 14:36    [7724922]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму как исп ROLLUP без аггрег. функции  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
declare @t table(f1 char(1), f2 char(1), f3 int)
insert into @t(f1, f2, f3)
select 'A', 'A', 1 union all
select 'A', 'C', 3 union all
select 'A', 'F', 4 union all
select 'B', 'E', 2 union all
select 'B', 'R', 1 union all
select 'C', 'T', 3

select f1, f2, sum(f3) as sm
  from @t
 group by f1, f2, f3 with rollup
having grouping(f1) = 0
   and (grouping(f3) = 1 or grouping(f2) = 1)

f1   f2   
---- ---- -----------
A    A    1
A    C    3
A    F    4
A    NULL 8
B    E    2
B    R    1
B    NULL 3
C    T    3
C    NULL 3

(9 row(s) affected)
30 сен 09, 14:39    [7724943]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму как исп ROLLUP без аггрег. функции  [new]
Evangelion01
Member

Откуда:
Сообщений: 82
Ух ты! Класс!
Спасибо большое!
Бойду читать RTFM по grouping и having.
1 окт 09, 10:29    [7728271]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить