gpt4 book ai didi

mysql - GROUP BY 仅具有特定条件和日期的行

转载 作者:行者123 更新时间:2023-11-29 08:22:50 25 4
gpt4 key购买 nike

我的数据库中有一个基本表,其中有简单的交易历史记录,例如向帐户存钱、取款和退款。每个条目都有一个与之关联的日期。

我有一个 php 页面,它逐行显示此交易信息,看起来很棒。但是,在 mySQL 查询中是否有一种方法可以将所有“退款”资金交易按天“折叠”到分组中?对交易类型执行 GROUP_BY 非常容易,但我只想如果 transaction_type 的类型为“退款”并且这些退款发生在同一天,则分组依据。谢谢!

我当前的示例表:
1 月 3 日,押金,100 美元
1 月 3 日,押金,200 美元
1 月 2 日,提款,$50
1 月 2 日,退款,100 美元
1 月 2 日,退款,100 美元
1 月 2 日,押金,200 美元
1 月 2 日,退款,100 美元
1 月 1 日,押金,100 美元

我希望数据如何显示
1 月 3 日,押金,100 美元
1 月 3 日,押金,200 美元
1 月 2 日,提款,$50
1 月 2 日,退款,300 美元<此行已将 1 月 2 日的所有退款合并为 1 行
1 月 2 日,押金,200 美元
1 月 1 日,押金,100 美元

当前的 SQL 类似于:

选择交易日期、交易类型、交易金额
来自交易历史
WHERE customer_id = $customer_id
ORDER BY transaction_date DESC

最佳答案

尝试一下,

SELECT  transaction_date, transaction_type, SUM(transaction_amount)
FROM TableName
-- WHERE customer_id = $customer_id
GROUP BY transaction_date,
CASE WHEN transaction_type = 'refund' THEN 1 ELSE RAND() END
ORDER BY transaction_date DESC

关于mysql - GROUP BY 仅具有特定条件和日期的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18883366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com