小编Luk*_*mas的帖子

SCD 类型 2 的 SQL 查询

我得到了下表,其中存在以下问题:

从数据集创建缓慢变化的维度类型 2。EMPLOYEE 表记录了每个员工的日常记录。类型 2 - 将具有有效数据和到期日期。

员工ID 日期 姓名 经理ID
123 3 月 1 日 约翰·史密斯 1
123 3月2日 约翰·史密斯 1
123 3月3日 约翰·史密斯 2
123 3 月 4 日 约翰·史密斯 3
123 3月5日 约翰·史密斯 3

我相信我的目标表应该如下所示:

员工ID 姓名 经理ID 生效日期 截止日期
123 约翰·史密斯 1 3 月 1 日 3月3日
123 约翰·史密斯 2 3月3日 3 月 4 日
123 约翰·史密斯 3 3 月 4 日 无效的

我尝试了以下查询:

SELECT employee_id, name, manager_id,
CASE
    WHEN LAG(manager_id) OVER() != manager_id THEN e.date …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server scd2 scd

6
推荐指数
1
解决办法
3万
查看次数

标签 统计

scd ×1

scd2 ×1

sql ×1

sql-server ×1

t-sql ×1