不幸的是,SQL並不是很容易找到我。我有兩張桌子,一張Loan
桌子和一張LoanPayments
桌子。每月獲得最後一個記錄
LoanPayments表:
ID(主鍵)的LoanID,PAYMENTDATE,金額等
我需要一個SQL語句,可以給我(租借表中的ID相符)每月輸入的最後一筆付款(如果有)。我目前的陳述並沒有給我結果。還有一個問題,那就是有時會在這個月有最好的約會,所以我也需要能夠處理這個問題(我的想法是在平局的情況下選擇最大的ID)。
這是我迄今爲止(我知道這是錯的,但我不知道爲什麼。):
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個月中。感謝您的幫助,並花時間幫助解決此問題。
'SELECT TOP 1 ... [查詢] ... ORDER BY myDateColumn DESC' –
這是否應該是聲明開頭的TOP 1?因爲這只是給我表中最新的付款。 – TOlsen
您是否每月只需要一條記錄,或者每個LoanID每月只需記錄一條記錄? –