powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не получается написать запрос
5 сообщений из 5, страница 1 из 1
Не получается написать запрос
    #32000675
ghost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно ли суммировать значения из таблички в зависимости от значения поля этойже таблицы?
Пример
есть таблица
IdKln Sm Oper
1 10.00 1
2 15.00 1
3 5.00 1
2 7.00 2
3 12.00 2

Надо получит результат запроса в виде

Клиент Сумма по Sm(усли Oper=1) Сумма по Sm(усли Oper=2)
(IdKln) (sum(Sm) ???????) (sum(Sm) ???????)
1 10.00 0.00
2 15.00 7.00
3 7.00 12.00
Заранее благодарен за помощь.
С уважением Павел Олексенко.
...
Рейтинг: 0 / 0
Не получается написать запрос
    #32000676
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По идее надо написать так:
select IdKln, sum(Sm), Oper
from tbl
group by IdKln, Oper

Но что бы суммы получить в два столбца, надо будет писать со вложенными запросами, что будет выглядеть не очень красиво и очень длинно. Но это уже надо думать.
...
Рейтинг: 0 / 0
Не получается написать запрос
    #32000677
Demon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По идее легче написать вот так:

select IdKln,
Sum1=case when Oper=1 then Sum(Sm) else 0 end,
Sum2=case when Oper=2 then Sum(Sm) else 0 end
from tbl
group by IdKln, Oper

и получить вот это:
1 10.0 0.0
2 15.0 0.0
3 5.0 0.0
2 0.0 7.0
3 0.0 12.0
...
Рейтинг: 0 / 0
Не получается написать запрос
    #32000679
Fompro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маленькая правка:
SELECT A.IdKln,SUM(A.Sum1),SUM(A.Sum2) FROM
(select IdKln,
Sum1=case when Oper=1 then Sum(Sm) else 0 end,
Sum2=case when Oper=2 then Sum(Sm) else 0 end
from #Ex
group by IdKln , Oper) AS A
GROUP BY A.IdKln
...
Рейтинг: 0 / 0
Не получается написать запрос
    #32000694
Semen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зачем так сложно. Можно просто:
select idkln, sum(case oper when 1 then Sm else 0 end),
sum(case oper when 1 then Sm else 0 end)
from tbl
group by idkln
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не получается написать запрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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