Bạn có thể sử dụng hàm ROW_NUMBER () tại đây:
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
Đó chỉ là Ngày thanh toán gần đây nhất cho mỗi tháng, nếu bạn muốn bằng LoanID, bạn sẽ thêm LoanID vào PARTITION BY
danh sách. Nếu bạn quan tâm đến việc duy trì mối quan hệ, bạn có thể sử dụng RANK()
thay vì ROW_NUMBER()