Получить последнюю запись из каждого месяца

К сожалению, SQL неприйти ко мне очень легко. У меня есть две таблицы,Loan стол иLoanPayments Таблица.

Таблица LoanPayments:

ID (первичный ключ), LoanID (соответствует идентификатору в таблице ссуд), PaymentDate, Amount и т. Д.

Мне нужно заявление SQL, которое может дать мне последний платеж, введенный в каждый месяц (если есть). Мое текущее заявление нене дает мне результаты. Существует также проблема, заключающаяся в том, что иногда будет самая большая дата в этом месяце, поэтому я тоже должен иметь возможность с этим справиться (моя идея заключалась в том, чтобы выбрать самый большой идентификатор в случае ничьей).

Это то, что я имею до сих пор (я знаю это 'неправильно, но я нене знаю почему.)

SELECT lp.ID, lp.LoanID, lp.PaymentDate 
FROM LoanPayments lp 
WHERE lp.PaymentDate in (
                          SELECT DISTINCT MAX(PaymentDate) as PaymentDate 
                          FROM LoanPayments 
                          WHERE IsDeleted = 0
                          AND ReturnDate is null 
                          GROUP BY YEAR(PaymentDate), Month(PaymentDate)
                        ) 
AND CAST(PaymentDate as date) >= CAST(DATEADD(mm, -24, GETDATE()) as date)

Последняя часть просто фильтрует его, поэтому я получаю только последние 24 месяца платежей. Спасибо за вашу помощь и за то, что нашли время помочь мне с этой проблемой.

Ответы на вопрос(2)

Ваш ответ на вопрос