如何使用 window 函数来引用较新的记录?

How to use a window function to refer to a newer record?

我想我需要使用 window 函数,但我不太确定。我的数据格式如下:

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 是根据 JobID 计算的。如果该 JobID 有较新的审计记录,则 AuditToDate 是较新审计记录的 AuditFromDate。否则为空白。

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

LEAD 将非常适合这里:

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