Sql 如何使用窗口函数引用较新的记录?

Sql 如何使用窗口函数引用较新的记录?,sql,sql-server,tsql,sql-server-2012,Sql,Sql Server,Tsql,Sql Server 2012,我相信我有使用窗口功能的要求,但我不太确定。我的数据格式如下: JobID ActiveFromDate RecID TypeID J1 01/12/2020 441166 LI2 J1 25/11/2020 375213 LO1 J1 24/11/2020 375207 LO2 J2 02/12/2020 441378 LO1 J2 01/12/2020 376896 LO2

我相信我有使用窗口功能的要求,但我不太确定。我的数据格式如下:

JobID   ActiveFromDate  RecID   TypeID
J1      01/12/2020      441166  LI2
J1      25/11/2020      375213  LO1
J1      24/11/2020      375207  LO2
J2      02/12/2020      441378  LO1
J2      01/12/2020      376896  LO2
J2      30/11/2020      375288  LI1
J3      03/12/2020      441894  LO2
J3      01/11/2020      374558  LI1
J3      31/10/2020      371285  LI2
J4      02/12/2020      441295  LI1
J4      13/11/2020      374598  LO2
J4      01/11/2020      374423  LO1
我想说的是:

JobID   ActiveFromDate  ActiveToDate    RecID   TypeID
J1      01/12/2020                      441166  LI2
J1      25/11/2020      01/12/2020      375213  LO1
J1      24/11/2020      25/11/2020      375207  LO2
J2      02/12/2020                      441378  LO1
J2      01/12/2020      02/12/2020      376896  LO2
J2      30/11/2020      01/12/2020      375288  LI1
J3      03/12/2020                      441894  LO2
J3      01/11/2020      03/12/2020      374558  LI1
J3      31/10/2020      01/11/2020      371285  LI2
J4      02/12/2020                      441295  LI1
J4      13/11/2020      02/12/2020      374598  LO2
J4      01/11/2020      13/11/2020      374423  LO1
AuditToDate是根据作业ID计算的。如果该作业ID有较新的审核记录,则AuditToDate是较新审核记录的AuditFromDate。否则为空


有什么办法可以做到这一点吗?

LEAD
将非常适合这里,如下所示:

SELECT JobID, ActiveFromDate,
       LEAD(ActiveFromDate) OVER (PARTITION BY JobID ORDER BY ActiveFromDate) AS ActiveToDate,
    RecID, TypeID
FROM table

非常感谢。我甚至都不知道这个函数,但它就像你说的那样完美地完成了工作