Получить последнюю запись из каждого месяца
К сожалению, 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 месяца платежей. Спасибо за вашу помощь и за то, что нашли время помочь мне с этой проблемой.