你好我在Mysql查询中有问题,每个付款类型显示月度报告。 我有这样的数据库表。
uid | invoice_num | pay_type | trans_date |总
在pay_type中我使用枚举类型,其中 0 =现金,1 =借记,2 =信用。
我想显示这样的数据。
Trans_date |现金|借记|信用|总
2013年10月1日1000 0 500 1500
等
这是我当前的查询但是,它返回错误。
SELECT
(SELECT tgl_transaksi FROM tb_detail_transjual GROUP BY tgl_transaksi) as tanggal,
(SELECT SUM(total) FROM tb_detail_transjual
WHERE jenis_trans=0) as cash,
(SELECT SUM(total) FROM tb_detail_transjual
WHERE jenis_trans=1) as debit,
(SELECT SUM(total) FROM tb_detail_transjual
WHERE jenis_trans=2) as credit
谢谢。
答案 0 :(得分:1)
您可以使用CASE WHEN语句。我没有测试过这个,但它应该可行。如果要对其进行排序,可以将ORDER BY trans_date添加到结尾。
SELECT trans_date,
CASE WHEN pay_type = 0 THEN sum(total) ELSE 0 END AS Cash,
CASE WHEN pay_type = 1 THEN sum(total) ELSE 0 END AS Debit,
CASE WHEN pay_type = 2 THEN sum(total) ELSE 0 END AS Credit,
sum(total) AS Total
FROM tb_detail_transjual
GROUP BY trans_date