MySQL高级SUM和GroupBy Month案例的帮助



我有以下查询,但我被卡住了,不确定下一步该去哪里处理我们博物馆的管理应用程序。

SELECT name,
account_number,
CASE
WHEN p.method = 'cash'
OR p.method = 'mo'
OR p.method = 'check'
THEN
MONTH(p.created_at)
ELSE
MONTH(p2.created_at)
END
FROM cemetery_charge_types
LEFT JOIN invoices i on cemetery_charge_types.id = i.charge_type_id
LEFT JOIN payment_details pd on i.id = pd.payable_id
LEFT JOIN payments p on pd.payment_id = p.id
LEFT JOIN payouts p2 on p.payout_id = p2.id
BETWEEN '2022-06-01 00:00:00' AND '2022-06-30 00:00:00'
WHERE cemetery_charge_types.category = 'Court'
GROUP BY account_number
ORDER BY account_number

如果CCD_ 1(支付(CCD_;现金、莫或支票;我想按p.created_at的月份分组,按pd.amount的SUM分组。

但是如果CCD_ 5(支付(CCD_;卡或终端";,我想按p2.created_at月份分组。

我仍然希望它按account_number分组,并将两组的和加在一起。

因此,如果现金、支票或mo方法在第6个月总计100美元,在第7个月总计0美元。如果卡和终端方法在第6个月总共50美元,在第7个月总共75美元,我希望它看起来像:

ACCT # MONTH 6 MONTH 7

p0

这有可能吗?或者有人建议我去哪里看?

模式:

SELECT {common columns},
CASE WHEN {condition 1} THEN {expression 1}
WHEN {condition 2} THEN {expression 2}
END AS grouping_expression,
SUM( CASE WHEN {condition 1} THEN {value 1}
WHEN {condition 2} THEN {value 2}
END ) AS result_expression
FROM {tableset}
GROUP BY {common columns}, 
grouping_expression

带有示例数据的表结构将有助于理解问题。CASE语句必须作为Group子句的一部分。

最新更新