2
問題:我需要找到所有有效的[GiftPledges],其中最後三個[GiftDetails]的金額爲零。GROUP BY子句的TOP N問題
SELECT gp.PledgeId FROM GiftPledge gp
INNER JOIN GiftDetail gd ON gp.PledgeId = gd.PledgeId
WHERE gp.PledgeStatus = 'A'
GROUP BY PledgeId
HAVING COUNT(PledgeId) >= 3
現在,我擁有至少三個[GiftDetails]的所有[GiftPledges]。
SELECT TOP 3 gdi.Amt FROM GiftDetail gdi
INNER JOIN GiftHeader ghi ON gdi.GiftRef = ghi.GiftRef
WHERE gdi.PledgeId = gp.PledgeId
ORDER BY ghi.GDate DESC
這給出了與給定的[GiftPledge]關聯的三個最近的[GiftDetails]。問題是我不知道如何總結第二個查詢,並將它作爲第一個查詢中的WHERE子句的一部分。
我發現this article關於「Top n per Group」和似乎像我需要領導的方向,但我不確定我是否在正確的軌道上。
任何幫助,澄清或建議將不勝感激。