0

您好,我在 Mysql 查询中遇到问题,无法显示每种付款类型的月度报告。我有这样的数据库表。

uid | 发票号码 | 支付类型 | 交易日期 | 全部的

在 pay_type 我使用枚举类型,其中0=cash, 1=debit 和 2=credit

我想像这样显示数据。

交易日期 | 现金 | 借方 | 信用 | 总计
2013-10-01 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

谢谢你。

4

1 回答 1

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
于 2013-10-25T17:31:36.277 回答