我的表中有这些数据 (tb_cash_transaction)
我想将 TYPE 列、CURRENCY_ID 列和 AMOUNT 列分组,这样它就会变成如下所示:
**Currency** **Cash IN** **Cash OUT** **Balance**
14 40000 30000 10000
15 50000 40000 10000
规则:
1.按货币分组
2.然后求出该货币的现金总和
3.求出该币种的提现总额
4.获取余额(sum cash in - sum cash out)
如何用mysql实现?我尝试使用 group by 但无法获得所需的输出。
提前致谢
最佳答案
SELECT currency_id,
SUM(CASE
WHEN TYPE = 'cash_in' THEN amount
END) AS cash_in,
SUM(CASE
WHEN TYPE = 'cash_out' THEN amount
END) AS cash_out,
SUM(CASE
WHEN TYPE = 'cash_in' THEN amount
ELSE -amount
END) AS balance
FROM tb_cash_transaction
WHERE TYPE IN ('cash_in', 'cash_out') /*<--- Where clause probably not needed
but just in case there are other options*/
GROUP BY currency_id
关于mysql 3 group by 和 sum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4611472/