根据上一行的计算列进行后退计划计算

时间:2018-12-01 20:12:57

标签: calculated-columns

我们有一个表“ Job”,其中包含作业及其操作步骤的列表。我们只有工作的截止日期可用,并且需要根据交货时间提前安排每个操作的结束日期。

以下是最终结果的示例:

Job#   Oper#   JobDueDate   OperLT   OperEndDate
123    50      3/15/2019     5       3/15/2019
123    40      3/15/2019     3       3/10/2019
123    30      3/15/2019     2       3/7/2019
123    20      3/15/2019    10       3/5/2019
123    10      3/15/2019     3       2/23/2019
456    30      2/10/2019    15       2/10/2019
456    20      2/10/2019     5       1/26/2019
456    10      2/10/2019     4       1/21/2019

我使用了窗口函数Lag() Over(),但它仅适用于下一行。
SQL语句如下:

SELECT Job#, Oper#, JobDueDate, OperLT, lag(dateadd(d, OperLT*-1, JobDueDate),1,JobDueDate) OVER (partition BY Job# ORDER BY Job#, Oper# desc) AS OperEndDate FROM Job ORDER BY Job#, Oper# desc;

如果Lag() Over()不是正确的解决方案,有人可以指出我的代码中缺少什么或更好的方法吗?

0 个答案:

没有答案