选择第二条记录,然后确定最早的日期

问题描述

我有一个看起来像下面的表

enter image description here

我必须为每个PatientID每隔一秒选择一条记录,以得到以下结果(我的上一次查询返回了该结果)

enter image description here

然后我必须选择日期最早的记录,该日期将是以下日期(这是我想要的最终结果)

enter image description here

到目前为止我所做的:我有一个CTE,可以获取我需要的所有数据

WITH cte
AS 
(
    SELECT visit.PatientTreatmentVisitID,mat.PatientMatchID,pat.PatientID,visit.RegimenDate AS VisitDate,ROW_NUMBER() OVER(PARTITION BY mat.PatientMatchID,pat.PatientID ORDER BY visit.VisitDate ASC) AS RowNumber
    FROM tblPatient pat INNER JOIN tblPatientMatch mat ON mat.PatientID = pat.PatientID
    LEFT JOIN tblPatientTreatmentVisit visit ON visit.PatientID = pat.PatientID
)

然后我针对CTE编写查询,但到目前为止,我只能为每个PatientID返回第二行

SELECT *
FROM 
(
    SELECT PatientTreatmentVisitID,PatientMatchID,PatientID,VisitDate,RowNumber FROM cte    
) as X
WHERE RowNumber = 2 

如何返回仅具有最早日期的记录?也许我可以在某个地方包含MIN()函数?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)