我有以下查询,它返回总金额。
select sum(cast(dollars as dec)) from financials
这包括正面和负面的价值观。 我想要两件事:
如何才能查询正数金额?即。我有3条记录,10,-5,10。结果将是20。
我想要一个绝对值作为总和。即。我有3条记录,10,-5,10。结果将是25。
感谢。
答案 0 :(得分:3)
FOR 1)使用条件SUM()
SELECT SUM( CASE WHEN dollars > 0 then dollars ELSE 0 END) as positive_sum,
SUM( CASE WHEN dollars < 0 then dollars ELSE 0 END) as negative_sum
FROM financials
FOR 2)使用ABS()
SELECT SUM( ABS( dollars ) )
FROM financials
答案 1 :(得分:1)
请尝试以下查询。感谢。
1) select sum(cast(dollars as dec))
from financials
where dollars > 0;
2) select sum(cast(abs(dollars) as dec))
from financials;
答案 2 :(得分:1)
您有两个查询。解决方案如下
1.
select sum(dollars) from financials
2.
select sum((case when dollars>0 then dollars end))+sum((case when dollars<0 then -1*dollars end)) from financials