2017-09-24 113 views
0

我有一個SCD 2型表,其中包含: -如何從SCD TYPE2表中特定年份獲取數據

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年

+2

您如何識別僱員?指定數據類型併發布解決此問題的嘗試。 –

+2

「開始日期」和「結束日期」的數據類型是什麼? – Sami

回答

1

要檢索兩組數據:

  • 員工解決有效期自隨時過去,到2013年或以後(開始日期< 2013和結束日期> = 2013)
  • 員工有效期在2013年

這給了你已經在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)