Проблема: мне нужно найти все активные [GiftPledges], у которых последние три [GiftDetails] имеют нулевую сумму.Проблема TOP N с предложением GROUP BY
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
Теперь у меня есть все мои [GiftPledges], у которых есть как минимум три [GiftDetails].
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
Это дает мне три последних [GiftDetails], связанных с данным [GiftPledge]. Проблема в том, что я не знаю, как суммировать второй запрос и быть частью предложения WHERE в первом запросе.
Я нашел this article о «Top п в группе», и что кажется как направление мне нужно быть во главе, но я не уверен, что я на правильном пути.
Любая помощь, разъяснения или предложения были бы весьма полезными.