Все арифметические или логические операции с NULL приводят к NULL.Например:
SELECT 1 + NULL -- NULL
Необходимо преобразовать NULL в нули, прежде чем вы сможете +
их:
SELECT
COALESCE(SUM(January), 0) +
COALESCE(SUM(February) , 0) +
...
Также можно сначала добавить столбцы, а затем вычислить сумму:
SELECT SUM(
COALESCE(January, 0) +
COALESCE(February, 0) +
)
Имейте в виду, что (i) SUM пропускает значения NULL (ii) возвращает NULL вместо 0, если все значения NULL:
SELECT SUM(a) FROM (VALUES
(1),
(2),
(NULL)
) AS v(a) -- returns 3 instead of NULL
Возвращается NULL, если все значения были равны NULL:
SELECT SUM(a) FROM (VALUES
(CAST(NULL AS INT)),
(NULL),
(NULL)
) AS v(a) -- returns NULL instead of 0