0

私のデータベースには、口座への入金、出金、返金などの簡単な取引履歴を持つ基本的なテーブルがあります。各エントリには日付が関連付けられています。

このトランザクション情報を行ごとに表示する php ページがあり、見栄えがします。しかし、mySQL クエリ内で、すべての「返金された」お金の取引を日ごとのグループに「折りたたむ」方法はありますか? トランザクション タイプで GROUP_BY を実行するのは非常に簡単ですが、transaction_type のタイプが「払い戻し」であり、それらの払い戻しが同じ日に発生した場合にのみグループ化したいと考えています。ありがとう!

私の現在の例のテーブル:
1 月 3 日、入金、1 月 3 日 $100
、入金、1 月 2 日 $200
、引き出し、1 月 2 日 $50
、払い戻し、1
月 2 日 $100、払い戻し、1
月 2 日 $100、入金、1 月 2 日 $200
、払い戻し、1 月 1 日 $100
、デポジット、$100

1月 3 日、入金、1 月 3
日 $100、1
月 3 日入金、1
月 2 日、引き出し、1 月 2 日、引き出し、1
月 2 日、払い戻し、300 ドル < この行は、1 月 2 日のすべての払い戻しを 1 行にまとめました
。 $200
1 月 1 日、デポジット、$100

現在の SQL は次のようなものです。

SELECT transaction_date, transaction_type, transaction_amount
from transaction_history
WHERE customer_id = $customer_id
ORDER BY transaction_date DESC

4

1 に答える 1

2

これを試してみてください。

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
于 2013-09-18T22:30:01.150 に答える