下面是我的表架构: -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 –