我有以下情况
ID Value
1 50
1 60
2 70
2 80
1 0
2 50
我需要运行一个返回求值的查询,按ID分组。捕获的是如果值为0,那么整个总和应为0。
查询结果将是
ID Value
1 0
2 200
我试过
select ID, case
when Value> 0 then sum(Value) * 1
when Value= 0 then sum(value) * 0
end
from table
但这没效果。
答案 0 :(得分:4)
select ID,
sum(value)*sign(min(abs(value))) as [sum(value)]
from YourTable
group by ID
如果您愿意,可以使用案例:
select ID,
case sign(min(abs(value)))
when 0 then 0
else sum(value)
end as [sum(value)]
from YourTable
group by ID