Как обнулить все отрицательные числа в инструкции group-by T-SQL
У меня есть запрос T-SQL, где я хочу, чтобы все отрицательные величины были обнулены.
SELECT
p.productnumber,
v.[Description],
SUM(i.Quantity) as quantity
FROM ...
LEFT JOIN ...
LEFT JOIN ...
LEFT JOIN ...
GROUP BY productnumber, [Description]
в основном если сумма состоит из 5, 5, -1, результат должен быть 5+5+0=10, а не (5+5+(-1)=9.
Как бы я это сделал?
3 ответов
вы могли бы использовать CASE
сообщении
SUM(CASE WHEN i.Quantity < 0 THEN 0 ELSE i.Quantity END)
или более неясная версия
SUM(NULLIF(i.Quantity, -ABS(i.Quantity)))
или просто исключить эти строки WHERE
пункт, если они не нужны для других целей.