我有一个scd type 2表,其中包含: -
ib address start date end date flag
1 a Jan-12 Dec-00 X
2 b Jan-13 13-Mar x
2 c 13-Mar Dec-00 y
3 d Feb-13 Dec-00 Y
1 v Sep-17 Dec-00 Y
我想获取2013年所有员工的地址。 从2013年的表中选择所有活动记录。
答案 0 :(得分:1)
您想要检索两组数据:
这为您提供了2013年有效的地址的整个数据集。每个员工可能有多个地址,因此您需要在select语句中包含有效日期。
假设该表名为addresses
,并且日期列格式正确:
select *
from addresses
where
-- addresses valid until 2013 or later
(year(start_date) < 2013 and year(end_date) >= 2013)
-- addresses which started being valid in 2013
OR (year(start_date) = 2013)