繁体   English   中英

协助mysql案件

[英]Assistance with mysql case

我有下表 1 发票

1  | 2022-12-05      | 20
2  | 2022-12-06      | 100
3  | 2022-12-07      | 100

和表 2 invoice_payment

1  | 1          | 20    | cash
2  | 2          | 100   | POS
3  | 3          | 25    | Cash 
4  | 3          | 50    | POS 
5  | 3          | 25    | Cash 

我正在尝试获取每张发票,其中包含已支付的金额和付款明细

我努力了

`SELECT invoice_id, count(invoice_id) as transactions,

    (CASE WHEN payment_type = 'Cash' THEN SUM(paid) END) AS paid_cash,
    (CASE WHEN payment_type = 'Insurance' THEN SUM(paid) END) AS paid_ins,
    (CASE WHEN payment_type = 'POS' THEN SUM(paid) END) AS paid_pos,
    (CASE WHEN payment_type = 'Chq' THEN SUM(paid) END) AS paid_chq,
    (CASE WHEN payment_type = 'BT' THEN SUM(paid) END) AS paid_bt
          
FROM
    invoice_payment ipc
INNER JOIN
    invoice i
ON ipc.invoice_id = i.id
    

GROUP BY invoice_id DESC`

这是上述查询中的 output

    1       |     1        |  20      |NULL     | NULL     |NULL     |NULL
    2       |     1        |  NULL    |NULL     | 100      |NULL     |NULL
    3       |     3        |  100    |NULL      | NULL     |NULL     |NULL

但是,所需的 output 看起来像

    1       |     1        |  20      |NULL     | NULL     |NULL     |NULL
    2       |     1        |  NULL    |NULL     | 100      |NULL     |NULL
    3       |     3        |  50      |NULL     | 50       |NULL     |NULL

我如何调整此代码以获得所需的 output? 目前编写的代码没有获得不同支付类型的总和。

SELECT invoice_id, count(invoice_id) as transactions,

    sum(CASE WHEN payment_type = 'Cash' THEN paid END) AS paid_cash,
    sum(CASE WHEN payment_type = 'Insurance' THEN paid END) AS paid_ins,
    sum(CASE WHEN payment_type = 'POS' THEN paid END) AS paid_pos,
    sum(CASE WHEN payment_type = 'Chq' THEN paid END) AS paid_chq,
    sum(CASE WHEN payment_type = 'BT' THEN paid END) AS paid_bt
          
FROM
    invoice_payment ipc
INNER JOIN
    invoice i
ON ipc.invoice_id = i.id
    
GROUP BY invoice_id DESC`

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM