SQL Server:在历史记录上缓慢更改维度类型2



我正在尝试为Customer表中的历史记录设置类型2的SCD。附件是如何设置客户表以及预期结果。请注意,Customer表实际上有200万个不同的Customer ID。我尝试使用下面的查询,但每行的Start_Date和End_Date都在重复。

SELECT t.Customer_ID, t.Lifecyle_ID, t.Date As Start_Date,
LEAD(t.Date) OVER (ORDER BY t.Date) AS End_Date
FROM Customer AS t

我认为可能需要一个三步查询。

  1. 使用LEAD和LAG,按客户分区并按日期排序,查看下一行的日期和生命周期值
  2. 当当前行的生命周期<gt;下一行的生命周期(否则发出NULL(。现在,使用LAG对"生效日期"执行相同操作
  3. 对步骤#2的输出执行Group By或Distinct

希望这是有道理的。我将在今天晚些时候发布一个代码示例,但希望这足以让您开始。

最新更新