Je zou de ROW_NUMBER() functie hier kunnen gebruiken:
SELECT *
FROM (SELECT lp.ID, lp.LoanID, lp.PaymentDate
, ROW_NUMBER() OVER (PARTITION BY YEAR(PaymentDate), Month(PaymentDate) ORDER BY PaymentDate DESC) 'RowRank'
FROM LoanPayments lp
)sub
WHERE RowRank = 1
Dat is gewoon de meest recente Betaaldatum voor elke maand, als je het wilt met LoanID, zou je LoanID toevoegen aan de PARTITION BY
lijst. Als u geïnteresseerd bent in het behouden van banden, kunt u RANK()
. gebruiken in plaats van ROW_NUMBER()