我在更新前有如下数据。我试图得到一个看起来像" After Update"图片。突出显示的单元格
1 - 我需要使用下一行的开始日期填充上一行的每个结束日期列。我正在使用没有延迟和引导功能的SQL Server 2008。
2 - 还需要按如下方式填写当前的GOLD行
CarryoverFrom = the ID of the previous not immediate PREMIUM row
CarryoverFrom2 = the ID of the immediate previous PREMIUM row
CarryoverAppliedTo = Sum of the Carryover amount of the previous PREMIUM rows
**请注意,每个GOLD行仅处理在GOLD行之后发生的先前PREMIUM行。例如,ID 5行仅处理PREMIUM行ID 4而不处理ID 2和2中的PREMIUM行
答案 0 :(得分:0)
如果没有LAG
或LEAD
,您可以按行号自行加入表格。因此,对于第1项,它将是:
UPDATE A SET [End Date] = NextRecords.[Start Date] FROM
(SELECT *, ROW_NUMBER() OVER (ORDER BY [Start Date]) rownum FROM [table]) A
INNER JOIN (SELECT *, ROW_NUMBER() OVER (ORDER BY [Start Date]) rownum FROM [table]) NextRecords
ON A.rownum + 1 = NextRecords.rownum
第2项将是类似的,但更详细一点。