簡體   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