Sql 分别求正值和负值之和
我有一张桌子:Sql 分别求正值和负值之和,sql,Sql,我有一张桌子: NAME MONEY Jane 100 Chris -100 Jane 50 Ann -10 Jane -25 Ann 17 我想写一个求和数据的查询,在一列中应该只有正值,在另一列中应该只有负值。输出应如下所示: NAME SUM_POSITIVE SUM_NEGATIVE Jane 150 -25 Chris 0 -100 Ann
NAME MONEY
Jane 100
Chris -100
Jane 50
Ann -10
Jane -25
Ann 17
我想写一个求和数据的查询,在一列中应该只有正值,在另一列中应该只有负值。输出应如下所示:
NAME SUM_POSITIVE SUM_NEGATIVE
Jane 150 -25
Chris 0 -100
Ann 17 -10
查询:
select name, sum(money) from TABLE where money>0 group by name
union
select name, sum(money) from TABLE where money<0 group by name;
请帮助我重写查询以更正输出。您可以改为执行条件聚合:
select name,
sum(case when money > 0 then money end) as SUM_POSITIVE,
sum(case when money < 0 then money end) as SUM_NEGATIVE
from TABLE
group by name;
选择名称,
sum(如果money>0,则money end)为sum_正数,
sum(当money<0时,则money end)为sum_负值
从桌子上
按名称分组;
您可以改为执行条件聚合:
select name,
sum(case when money > 0 then money end) as SUM_POSITIVE,
sum(case when money < 0 then money end) as SUM_NEGATIVE
from TABLE
group by name;
选择名称,
sum(如果money>0,则money end)为sum_正数,
sum(当money<0时,则money end)为sum_负值
从桌子上
按名称分组;
当
select name, sum(case when money>0 then money end) SUM_POSITIVE
,sum(case when money<0 then money end) SUM_NEGATIVE
from TABLE group by name
选择名称、金额(金额大于0的情况下,则金额结束)金额为正
,sum(钱的情况下使用情况下
select name, sum(case when money>0 then money end) SUM_POSITIVE
,sum(case when money<0 then money end) SUM_NEGATIVE
from TABLE group by name
选择名称、金额(金额大于0的情况下,则金额结束)金额为正
,sum(如果是钱的话)