2017-09-24 7 views
0

私が含まれている1つのSCDタイプ2のテーブルを、している: -は、特定の年のためのSCDタイプ2のテーブルからデータを取得する方法

私は年2013 のためのすべての従業員の住所を取得したい
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

+2

どのように従業員を特定していますか?データ型を指定し、これを解決する試みを投稿してください。 –

+2

「開始日」と「終了日」のデータ型は何ですか? – Sami

答えて

1

ためのテーブルからレコードあなたは、2つのデータセットを取得したい: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) 
    
  • 関連する問題