powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / сумма с null
7 сообщений из 7, страница 1 из 1
сумма с null
    #32017874
Victor Kmita
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня ситуация: есть числовой столбец, где встречаются значения
NULL. Я делую в таблице группировочку а этот столбец для каждой
группы суммирую. Нужно чтобы если в сумме встречается NULL вся сумма
была NULL.
Можно конечно case-ом решить, в одном месте я так и сделал, но в
другом там запрос получился из нескольких таблиц и еще куча
наворотов, так что там не очень катит.
...
Рейтинг: 0 / 0
сумма с null
    #32017882
Pandre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скиньте результат select без суммирования во временную таблицу, а потом с ним разбирайтесь, например

delete from #tmp where group_field in (select group_field from #tmp where sum_field is null) and sum_field is not null
select sum(sum_field), group_field from #tmp group by group_field
...
Рейтинг: 0 / 0
сумма с null
    #32017886
Можно по-всякому извратится
Например, как-то так:

select ..., (case when (count(*)-count(<FieldForSum&gt)>0 then NULL else sum(<FieldForSum&gt end) as Summa
....
group by ...
...
Рейтинг: 0 / 0
сумма с null
    #32017887
Вместо рожи надо закрывающую скобку. Чегой-то она?
...
Рейтинг: 0 / 0
сумма с null
    #32017895
Victor Kmita
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
(нормально, не рожа)
В принципе я так и сделал. Только так:
SELECT ....,
case (select count(*) from CDR aaa where PriceKPN is null and aaa.A=sss.A)
when 0 then dbo.FmtMoney(SUM(PriceKPN)) else null end AS PriceKPN,
...
только подобные строчки очень забавно смотрятся в трехтабличном запросе с двойной группировкой.
Получается ему надо еще не раз (и не сто) проходится по таблице
Временную таблицу делать тоже никакого удовольствия -- порядка миллиона строк + таблицы множаться + это вид.
Знаю, что при суммировании типа SET @A = @A + @B + @C можно выставлять флаг чтобы если один из операндов is null, то @A тоже становиться нулем.

Думаю как это сделать для SUM() по столбцу.
...
Рейтинг: 0 / 0
сумма с null
    #32017908
В моем варианте нет подзапросов, поэтому проход по таблице будет только один.
...
Рейтинг: 0 / 0
сумма с null
    #32017912
Victor Kmita
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...до меня с первого раза не дошло. Теперь дошло. А я такого наворотил... Очень классно. Очень просто. Большое спасибо. Куда пиво? Если что - 97312093.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / сумма с null
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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