在 SQL Server 2008 R2 中,我有一个表 (StatDays),其中包含订单处于特定状态的天数 (DaysInStatus)。订单保持该状态的每一天都有一个条目,但周日没有写入此表的进程除外。在这种情况下,订单将在星期一再次出现,DaysInStatus 提前两天。
我的问题是如何填充缺少的星期日值。(我假设如果订单有星期六条目但没有星期一条目,则星期六是最后一个所需的数据点。)
例子:
OrderID StatDate DaysInStatus A11111 2012 年 6 月 1 日 20 A11111 2012 年 6 月 2 日 21 A11111 2012 年 6 月 4 日 23 A11111 2012 年 6 月 5 日 24 A11111 2012 年 6 月 6 日 25 A11111 2012 年 6 月 7 日 26 A11111 2012 年 6 月 8 日 27 A11111 2012 年 6 月 9 日 28 A11111 2012 年 6 月 11 日 30
在这里,我想将所有这些值以及缺失的日期 6/3 和 6/10(其中 DaysInStatus 分别提前到 22 和 29)以及 OrderID 插入(或选择)到另一个表中。
此外,在 DaysInStatus = 1 时,OrderID 不会总是出现在此表中。 In 几乎可以出现在任何值处,并且几乎可以在任何值处退出。
我尝试生成一个日期表,然后在 statDate 和 StatDate+1、StatDate-1 上对 StatDays 进行左外连接。这适用于小型记录集,但实际表有超过 1 亿条记录,所以这对我不起作用。
在此先感谢您的任何建议!