2017-03-16 83 views
1

我有兩個數據集。一種是類似於下面的示例SSIS合併雖然?

Table1 

Key StartDate  EndDate  Name  Data_1 
1  2017-01-01 2017-01-03 Billy G 58uf 
2  2017-01-10 2017-01-12 S Dogg  4940 

我也有一個標準的日期維度稱爲dbo.DimDate維度表的數據。我如何將日期維度合併到Table1上,以便Table1爲每個記錄包含StartDate和EndDate之間每天的記錄?

期望的結果是這樣的:

Table2 

Key StartDate  EndDate  Name  Data_1 Day 
1  2017-01-01 2017-01-03 Billy G 58uf  2017-01-01 
1  2017-01-01 2017-01-03 Billy G 58uf  2017-01-02 
1  2017-01-01 2017-01-03 Billy G 58uf  2017-01-03 
2  2017-01-10 2017-01-12 S Dogg  4940  2017-01-10 
2  2017-01-10 2017-01-12 S Dogg  4940  2017-01-11 
2  2017-01-10 2017-01-12 S Dogg  4940  2017-01-12 

這需要在一個SSIS包來完成。我不認爲一個簡單的MERGE JOIN會起作用,因爲1)Date維度沒有與Table1中的任何內容匹配的鍵,2)我需要它爲每個日期添加Day BETWEEN StartDate和EndDate

If我做了一個執行SQL命令,那麼我如何從兩個單獨的表中獲取它?

+0

最後的記錄從你期望的結果,爲什麼'EndDate'是「2017年1月11日」而不是「2017年1月12日」? – LONG

+0

對不起,這是一個錯字 – james5

+0

如果沒有共同的列(或鍵)加入,不能使用'合併加入',我會考慮另一種方法來做到這一點 – LONG

回答

0

你可以用Lookup來做到這一點。您的主要源組件將是日期維度,並且在查找中,您將獲取Table1的行,其中日期維度的日期位於開始/結束範圍內,並將這些列添加到數據流中。