我有这张桌子:
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 的总和。
打算从 previos 表中,我想
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)