MySQL正数和负数之和-计算货币交易的确切总数

MySQL正数和负数之和-计算货币交易的确切总数,mysql,sql,Mysql,Sql,我有一个充满事务的数据库表。交易记录包含返回项目的人员的负数。我想将所有金额字段相加,同时从总数中减去收益的负值。我怎样才能做到这一点并将其输出? 目前我能做的最好的事情是: SELECT SUM(amount) FROM outputaddition GROUP by SIGN(amount); 但这只会把积极和消极放在同一列。恐怕你的答案模棱两可;我们不确定你到底在问什么 SELECT personId,SUM(CASE WHEN amount<0 THEN amou

我有一个充满事务的数据库表。交易记录包含返回项目的人员的负数。我想将所有金额字段相加,同时从总数中减去收益的负值。我怎样才能做到这一点并将其输出? 目前我能做的最好的事情是:

  SELECT SUM(amount) 
  FROM outputaddition 
  GROUP by SIGN(amount);

但这只会把积极和消极放在同一列。

恐怕你的答案模棱两可;我们不确定你到底在问什么

SELECT personId,SUM(CASE WHEN amount<0 THEN amount ELSE 0 END) as NegativeTotal,
       SUM(CASE WHEN amount>=0 THEN amount ELSE 0 END) as PostiveTotal
FROM outputaddition
GROUP BY personID
最简单的是,如果“减去负值”意味着您只想忽略负回报:

选择总和(金额) 其中金额>0

试试这个

SELECT SUM(amount)  as ActualTotal
    ,Sum(Case When amount > 0 then amount else 0 end) totalOfPositiveOnly
  FROM outputaddition 

请提供样本数据和预期结果好吗?谢谢,但这只是将两个值分成不同的列。。。我该如何从这个结果中减去负数和正数负号加起来会从总数中减去..所以需要麻烦的是,只需将所有值传递给求和函数你确定吗?当然,谢谢你,哈桑基本上我有很多总数在一列中,但我想得到最终结果,例如,纯利润,所以我需要从我的totalsok中减去任何负值,所以如果正数加总数,负数减去总数,那么只需将所有内容相加:从…中选择总和(金额)。。。;
SELECT SUM(amount)  as ActualTotal
    ,Sum(Case When amount > 0 then amount else 0 end) totalOfPositiveOnly
  FROM outputaddition