私はこのテーブルを持っています:
idTransactions idCampaignsList idMemberCard amountOriginal amountFinal dateTransaction
1 2 1 50.00 100.00 2012-10-31 12:45:41
2 3 1 0.00 -50.00 2012-10-31 12:47:25
3 2 2 255.00 255.00 2012-10-31 17:19:07
4 1 2 95.00 95.00 2012-11-02 20:38:36
5 3 2 0.00 -400.00 2012-11-02 20:39:50
24 1 4 10.00 2.00 2012-11-03 11:16:3
このクエリで
SELECT SUM(amountOriginal) AS euro,
SUM(amountFinal) AS deducted,
EXTRACT(YEAR_MONTH FROM(dateTransaction)) AS period
FROM transactions
INNER JOIN campaignsList ON campaignsList.idCampaignsList = transactions.idCampaignsList
INNER JOIN customers ON customers.idCustomer = campaignsList.idCustomer
WHERE customers.idCustomer = 14
AND
transactions.idCampaignsList = 2
GROUP BY period
ORDER BY period
この結果が得られました
euro deducted period
305.00 305.00 201210
14860.46 -22758.50 201211
1845.00 -34710.00 201212
過去12か月間、「充電済み」と「放電済み」の合計。
これで、idCampaignsListは1、2、500になる可能性があります。これは、idCustomer(JOINを介して取得)を持つ「キャンペーン」の数によって異なります。
「各」idCampaignsListに対して、amountOriginalとamountFinalの合計を出力するという動的なクエリが必要です。
意図するために、前の表から、私は持っていたいです
idCampaignsList SUM(amountOriginal) SUM(amountFinal) period
1 50 50 201210
2 255 255 201210
2 95 -305 201211
4 10 2 201211
したがって、すべての期間について、idCampaignsListが動的に存在するすべての個別のidCampaignsListの列を合計します(SELECT idCampaignsList FROM myOtherTable where idCustomer = 14)