我必須創建一個查詢來返回下一個分期付款日期,並且在沒有下一個日期(例如,已經付款)的記錄時遇到問題,但我仍然需要返回該記錄。分期付款是每30天一次。像這樣:如何在sql where子句中包含max?
SELECT u.idloan, t.instdate
FROM loans u, schedule t
WHERE t.instdate IS NOT NULL
AND (t.instdate > CONVERT(VARCHAR,getdate(),102)
AND t.instdate < DateAdd(DAY, 30, GetDate())
AND t.loanid= u.idloan
ORDER BY u.idloan
用上面的查詢我得到貸款下一個付款日期,但沒有貸款記錄已經支付。我正在考慮加入:
or max (t.instdate) < convert(varchar,getdate(),102)
但是,獲取錯誤不能在where子句中包含max。 任何解決辦法?在SQL Server 2012上工作。
謝謝。
爲什麼對上帝的愛,你比較之前將所有您的日期VARCHAR處理? –
我們可以得到樣本起始數據和預期結果嗎? –
Seconding @ NielsKeurentjes的問題。自從SQL Server 2008以來,您已經可以使用CAST(x AS date)。 –