Во-первых, select
не требуется для этого. И я предпочитаю от COALESCE()
до ISNULL()
(COALESCE()
- это стандартный SQL).
@mainamount = coalesce(format(cast(sum(receipt_amount) as money), 'N', 'en-in'), 0)
Проблема в том, что 0
указывает, что тип возвращаемого значения - число ,Когда возникает конфликт типов, обычно выбирается более ограничительный тип, то есть строки преобразуются в числа и даты, когда нужно выбрать.
Но FORMAT()
возвращает строку. Это можно исправить, просто указав в качестве альтернативного значения строку:
@mainamount = coalesce(format(cast(sum(receipt_amount) as money), 'N', 'en-in'), '0')