Member 13142345 Ответов: 2

Как отобразить sum как 'o', если есть нулевые суммы


Я использую приведенный ниже запрос, чтобы отобразить сумму как "0"

SELECT isnull(SUM(amount),0) as amount from getbillsfortaxinvoice WHERE code IN ('TT') and fno = '02112017416202742' and bill_desc not like '%GST%' GROUP BY folio_Id,room_no,guest_name


Я заменил нулевые значения на "0", как при использовании isnull. Но результат пуст, а не "0" после суммы

Что я уже пробовал:

может ли кто-нибудь помочь мне с этим

я также пробовал с

ФУНКЦИЯ COALESCE()

но сумма получается как пустая.

PIEBALDconsult

Неужели никаких записей не вернули?

Member 13142345

Никакие записи не возвращаются. если есть сумма она показывает сумму но если ее нет она показывает как пустую

itsmypassion

С GROUP BY вы не можете получить NULL или 0, если записи не найдены.Попробуйте опустить Group BY

Member 13142345

когда я опускаю группу к тому времени, сумма отображается как "0". Но результат отличается от ожидаемого результата, так как я не написал группу по

Laiju k

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

Laiju k

если записей нет, то передайте значение '0' в сумму в коде позади.

2 Ответов

Рейтинг:
4

itsmypassion

Попробовать это

SELECT ISNULL(SUM(AMOUNT),0) FROM(SELECT isnull(SUM(amount),0) as amount from getbillsfortaxinvoice WHERE code IN ('TT') and fno = '02112017416202742' and bill_desc not like '%GST%' GROUP BY folio_Id,room_no,guest_name) as X


Member 13142345

Это решает проблему, и результат равен "0", если есть пустое значение.
Но имя поля не отображается как сумма. он отображается как (без имени столбца).

поэтому я изменил его следующим образом
Выберите функцию isnull(сумма(сумма),0) как сумма из(выбрать функции isnull(сумма(сумма),0) как сумма из getbillsfortaxinvoice где код в ('ТТ') и ФНО = '02112017416202742 и bill_desc не как '%НДС% группы по folio_Id,room_no,guest_name) как Х

Спасибо за запрос

Рейтинг:
1

Maciej Los

MSDN писал:
SUM можно использовать только с числовыми столбцами. Нулевые значения игнорируются.


Итак, замените:
isnull(SUM(amount),0)

с:
SUM(ISNULL(amount,1))


Примечание: сумма нулей даст вам... ноль!

Для получения более подробной информации, пожалуйста, смотрите:
SUM (Transact-SQL) | Microsoft Docs[^]
ISNULL (Transact-SQL) | Microsoft Docs[^]