[英]Assistance with mysql case
I have the following table1 invoice我有下表 1 发票
1 | 2022-12-05 | 20
2 | 2022-12-06 | 100
3 | 2022-12-07 | 100
And table2 invoice_payment和表 2 invoice_payment
1 | 1 | 20 | cash
2 | 2 | 100 | POS
3 | 3 | 25 | Cash
4 | 3 | 50 | POS
5 | 3 | 25 | Cash
I am trying to get each invoice with the amount paid and the breakdown of the payments我正在尝试获取每张发票,其中包含已支付的金额和付款明细
I have tried我努力了
`SELECT invoice_id, count(invoice_id) as transactions, `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` GROUP BY invoice_id DESC`
This is the output from the above query这是上述查询中的 output
1 | 1 | 20 |NULL | NULL |NULL |NULL
2 | 1 | NULL |NULL | 100 |NULL |NULL
3 | 3 | 100 |NULL | NULL |NULL |NULL
However, the desired output would look like但是,所需的 output 看起来像
1 | 1 | 20 |NULL | NULL |NULL |NULL
2 | 1 | NULL |NULL | 100 |NULL |NULL
3 | 3 | 50 |NULL | 50 |NULL |NULL
How do i adjust this code the get the desired output?我如何调整此代码以获得所需的 output? Currently the written code is not getting the sum of the different payment types.
目前编写的代码没有获得不同支付类型的总和。
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.