Sie könnten hier die Funktion ROW_NUMBER() verwenden:
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
Das ist nur das neueste PaymentDate für jeden Monat. Wenn Sie es nach LoanID haben möchten, fügen Sie LoanID zu PARTITION BY
hinzu aufführen. Wenn Sie daran interessiert sind, Bindungen zu erhalten, können Sie RANK()
verwenden statt ROW_NUMBER()