2017-03-15 75 views
1

我有一個包含日期範圍的表。例如:SQL Server/SSIS - 每天添加行

ID StartDate EndDate 
--------------------------- 
2  1/1/2017 1/4/2017 
3  1/2/2017 1/5/2017 
4  2/1/2017 2/2/2017 

我試圖通過SSIS創建下表(或者與「執行SQL任務」或任何其他方法)

ID Date 
-------------- 
2  1/1/2017 
2  1/2/2017 
2  1/3/2017 
2  1/4/2017 
3  1/2/2017 
3  1/3/2017 
3  1/4/2017 
3  1/5/2017 
4  2/1/2017 
4  2/1/2017 

,然後一旦我有我將加盟每行剩餘列數

問題:如何根據第一個表中的數據創建一個SQL任務/命令來創建上述表格?

注意:StartDateEndDate由外部來源填充。因此,第一個表格不是靜態的。

另外,我有一個名爲DimDate日期維度表,但我不知道怎麼幫助我

+1

那麼,有什麼問題? – squillman

+1

在行之間閱讀,你最好的方法恕我直言,是創建一個持久的日曆表,並用它來生成日期列表。這裏有一篇很好的文章:https://www.mssqltips.com/sqlservertip/4054/creating-a-date-dimension-or-calendar-table-in-sql-server/ – smj

+1

[SQL查詢轉換日期可能重複範圍到每天記錄](http://stackoverflow.com/questions/5363003/sql-query-to-convert-date-ranges-to-per-day-records) –

回答

0

易與日期維度表!我會讓你選擇你想使用的那個,因爲那裏有很多很多。舉個例子:https://www.mssqltips.com/sqlservertip/4054/creating-a-date-dimension-or-calendar-table-in-sql-server/

enter image description here

+0

我應該提到這一點,但我不知道實際日期會是什麼/因此我不能只輸入'2/1/2017',因爲那可能是也可能不是一個東西 – james5

+0

這就是日期維度表的美妙之處,因爲它們存儲日期時間系列值和各種其他日期相關的格式。例如,您可以在一年中的某一天,一週,一月中使用整數值。看看鏈接,希望這些例子會有所幫助。 – decompiled

+1

@ john5,選擇語句之前的所有代碼就是在那裏重建你的第一個表。你應該關注select語句。 – KindaTechy