分组返回0而不是负数

时间:2015-09-17 20:08:49

标签: sql-server group-by

select sum(amount), Type, ProductName, ProductCategory
from ProductAmount
Group by Type, ProductName, ProductCategory

运行此查询仅提供正数量,并且还将0替换为负数。有没有办法解决这个问题?

2 个答案:

答案 0 :(得分:0)

select sum(CASE WHEN amount < 0 THEN 0 ELSE amount END), Type, ProductName, ProductCategory
from ProductAmount
Group by Type, ProductName, ProductCategory

或使用SQL Server 2012 +:

select sum(IIF(amount < 0, 0, amount)), Type, ProductName, ProductCategory
from ProductAmount
Group by Type, ProductName, ProductCategory

答案 1 :(得分:0)

我发现了我的问题。有些产品在购买后退回。我没有意识到该表在返回时捕获负数,在购买时捕获正数。对于我的情况,当我使用SUM函数时,它添加了特定产品的金额,总计最终为0.