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

Откуда:
Сообщений: 154
Есть строки

exp | summa | tip
exp1 | 100 | 0
exp1 | 200 | 1
exp2 | 300 | 0
exp2 | 300 | 1


Необходимо получить Результат в виде таблицы с двумя суммами по уникальным exp, то есть для примера


exp | summaTip0 | summaTip1
exp1 | 100 | 200
exp2 | 300 | 300


Подскажите, пожалуйста, как бы вы сделали такой запрос

П.С. С новым годом!
1 янв 16, 20:00    [18634744]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом!  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20585
SUM(CASE tip WHEN 1 THEN summa ELSE 0 END)

Либо два независимых подзапроса.
1 янв 16, 20:38    [18634864]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом!  [new]
timda
Member

Откуда: Россия
Сообщений: 579
sum(summa*(tip-1)) as summaTip0,
sum(summa*tip) as summaTip1
1 янв 16, 21:03    [18634989]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом!  [new]
ilshatkin
Member

Откуда:
Сообщений: 154
Спасибо за оба совета!
1 янв 16, 21:18    [18635031]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом!  [new]
3unknown
Member

Откуда: New York
Сообщений: 140
Create table #tmp(exp varchar(10), summa int, tip int)

insert #tmp
values('exp1', 100, 0),
('exp1', 200, 1),
('exp2', 300, 0),
('exp2', 300, 1)

select exp,[0] as summaTip0,[1] as summaTip1
from #tmp
pivot(
sum(summa) for tip in([0],[1])
) as pvt
order by pvt.exp
2 янв 16, 00:26    [18635554]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить