我有一个充满事务的数据库表。交易包含来自返回人员的负数。我想把所有的金额字段加起来,同时从总数中减去返回的负值。我该怎么做并将其输出? 目前我能做的最好的事情是:
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
如果你想要单列
SELECT personId,SUM(amount) as Total
FROM outputaddition
GROUP BY personID
关于MySQL Sum positive and negative - 计算货币交易的确切总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22910381/