下面是我的表架構: -SQL SERVER:一個結果爲多個結果每個ID設置
Appointments
-------------------------------------------------
|apptID| persID| apptDate| apptCode| apptConfirm|
-------------------------------------------------
所有的約會有史以來以上表中的記錄。 我想得到一個結果集,如果apptCode是「200」,那麼獲取該人的上一次約會。
我想下面的查詢
WITH selected_person AS
(SELECT persID, apptDate FROM Appointments WHERE apptCode IN ('200'))
SELECT apptID, apptDate, apptCode
FROM selected_person sp LEFT JOIN Appointments ap ON sp.persID = ap.persID
WHERE ap.apptDate < sp.apptDate
上面查詢得到我以前的約會,但我只想要一個結果,這是以往獲委任爲其中有apptCode「200」
我不知道一個在這種情況下,LIMIT將如何提供幫助。 任何指針將是非常讚賞
感謝
您可以通過'可以組sp.persID',獲取MAX(apptDate),並按apptDate desc排序。 – FDavidov
您可以查看SQL Server 2012中引入的滯後/潛在函數。另一個選項是使用行號並重新連接到n -1 –