Я создал следующий запросДеление на ноль Ошибка при использовании нескольких SUM
SELECT LPORGNAME
,SUM(TOTALNoOFTRANSFERS) as TOTAL
,SUM(TReads) AS TReads
,ISNULL(ROUND(ISNULL(SUM(TReads),0)/CAST(SUM(TOTALNoOFTRANSFERS)AS FLOAT)*100,2),0)
FROM T_SPID_TRANSFER_IVSO
WHERE DM_FISC_YEAR = '2014-15'
GROUP BY LPORGNAME, DM_FISC_YEAR
ORDER BY LPORGNAME, DM_FISC_YEAR
Но я бегом в divieded на ноль, как вы можете видеть, я попытался попытаться ISNULL путь, но это не работает. Как я могу это исправить?
EDIT В TOTALNoOFTRANSFERS является SUM Колонка, которая не позволяет NULLS так там всегда будет 0
EDIT Найден простой способ избежать всех 0-х. Добавление WHERE TOTALNoOFTRANSFERS> 0, избегает все 0 и все вместе
Является ли сумма TOTALNOFTRANSFERS нулевой? Это может быть вашей проблемой. (Ваш внутренний IsNull действует на числитель, а не на знаменатель. Ваш внешний IsNull слишком поздно. Вам нужно будет проверить знаменатель.) – DeadZone
@DeadZone Division by 'NULL' должен возвращать' NULL'. Только деление на фактическое нулевое значение должно приводить к делению на нулевую ошибку. –
TOTALNoTransfers - ДРУГОЙ СУММА в таблице (например, col1 + col2 + col3). Но в этом запросе я должен получить процент столбца А в этом TOTALNoTransfers, этот столбец может иметь 0, если col1 + 2 + 3 = 0. – Blahwoo