使用滞后函数对多列求和 SQL

Sum multiple columns with lag function SQL

我正在尝试使用 SQL 对 2 个字段求和。我的第一个字段在当前行(leadTime days)中,而第二个字段位于前一行(LeadTime Cumulative)。

到目前为止,我为计算提交的累计提前期所做的工作

CASE
WHEN [ClientNo] <> LAG([ClientNo], 1) OVER(ORDER BY [ClientNo], [Startdate])
THEN [LeadTime days]

WHEN [ClientNo] = LAG([ClientNo], 1) OVER(ORDER BY [ClientNo], [Startdate])
AND DATEDIFF(DD, [Enddate Previous], [Startdate]) > 10
THEN [LeadTime days]

WHEN [ClientNor] = LAG([ClientNo], 1) OVER(ORDER BY [ClientNo], [Startdate])
AND DATEDIFF(DD, [Enddate Previous], [Startdate]) < 10
THEN [LeadTime days] + LAG([LeadTime Cumulative], 1) OVER(ORDER BY [ClientNo], 
[Startdate])

ELSE [LeadTime days]
END

它出了问题,它没有增加字段提前期天数 + 滞后(提前期累计,1)。它给了我空值:

额外: 如果 datediff start date en enddate previous record within same client > 10, 你必须重新开始计数 知道如何解决这个问题吗?

我想你想要一个累计数:

select t.*,
       sum(lead_time_days) over (partition by clientno
                                 order by startdate
                                ) as cumulative_lead_time_days
from t