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

Откуда:
Сообщений: 24
Всем доброго времени суток!

Есть потребность поставить условие внутри конструкции sum, чтобы суммировались значения одного столбца, в зависимости от значения другого столбца.

для примера:
select sum(a case b='5')

Хочу сразу оговорится, что условие нужно именно внутри sum, так как это только часть большого запроса между несколькими таблицами.
21 фев 19, 09:30    [21816021]     Ответить | Цитировать Сообщить модератору
 Re: Запрос внутри конструкции sum  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 3796
Laikon,

SELECT SUM(CASE WHEN b = '5' THEN a ELSE 0 END)
21 фев 19, 09:37    [21816022]     Ответить | Цитировать Сообщить модератору
 Re: Запрос внутри конструкции sum  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1527
Laikon
Есть потребность поставить условие внутри конструкции sum, чтобы суммировались значения одного столбца, в зависимости от значения другого столбца.

для примера:
select sum(a case b='5')
Ну если есть, то ставьте, разрешаем. Только в соответствии с документацией, а не отсебятину. Где вы видели case в том виде, который вы тут продемонстрировали?
21 фев 19, 09:37    [21816023]     Ответить | Цитировать Сообщить модератору
 Re: Запрос внутри конструкции sum  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1527
Дмитрий Мух
Laikon,

SELECT SUM(CASE WHEN b = '5' THEN a ELSE 0 END)
Или с некоторых пор:
SELECT SUM(iif(b = '5', a, 0))
21 фев 19, 09:39    [21816025]     Ответить | Цитировать Сообщить модератору
 Re: Запрос внутри конструкции sum  [new]
Laikon
Member

Откуда:
Сообщений: 24
Sergey Sizov,

Ваш вариант мне особенно понравился! Огромное спасибо!Все получилось
21 фев 19, 09:57    [21816031]     Ответить | Цитировать Сообщить модератору
 Re: Запрос внутри конструкции sum  [new]
Laikon
Member

Откуда:
Сообщений: 24
Дмитрий Мух,

Вам тоже СПАСИБО, вариант сработал!
21 фев 19, 09:57    [21816032]     Ответить | Цитировать Сообщить модератору
 Re: Запрос внутри конструкции sum  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8714
Sergey Sizov
Или с некоторых пор:
SELECT SUM(iif(b = '5', a, 0))

Спасибо, не знал...

Но всё-таки это тот же CASE : https://docs.microsoft.com/ru-ru/sql/t-sql/functions/logical-functions-iif-transact-sql?view=sql-server-2017
21 фев 19, 12:13    [21816163]     Ответить | Цитировать Сообщить модератору
 Re: Запрос внутри конструкции sum  [new]
DaniilSeryi
Member

Откуда:
Сообщений: 1723
SIMPLicity_
Sergey Sizov
Или с некоторых пор:
SELECT SUM(iif(b = '5', a, 0))

Спасибо, не знал...

Но всё-таки это тот же CASE : https://docs.microsoft.com/ru-ru/sql/t-sql/functions/logical-functions-iif-transact-sql?view=sql-server-2017


постепенно синтаксис и функции Access переносят в SQL Server. :-)
21 фев 19, 12:20    [21816169]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить