2010-09-08 12 views
0

多個行中給出的格式(當前平面文件)的輸入:剖分式成SSIS

名稱,起始日期,結束日期

與樣品數據

彼得,2010-09-04,2010-09-04

我想知道我可以使用哪一個SSIS任務將這一行分成每天一行: Peter, 2010-09-01 彼得,2010-09-02 彼得,2010-09-03 彼得,2010-09-04

我知道,我也許可以與腳本任務做了,但我認爲有可能是內置的東西?

任何幫助,非常感謝。

回答

0

當我需要分割行時,我使用了多播,但是我有固定數量的行(即將一行分成三份)。

在你的情況下,我會去腳本組件。

如果不想在SSIS中編寫腳本,也可以將數據寫入SQL表,然後編寫自己的SQL存儲過程以返回所需的行。

也許你也可以用SELECT語句來做到這一點。只問與SQL相同的問題:

「我怎樣才能選擇SQL兩個日期之間的所有日期」

詳細組播

  1. 多播連接到數據源
  2. 拖累輸出到「添加列」
  3. 在添加列中添加一個執行「startdate + 1」的表達式
  4. 用連接符重複電視機從組播下一個輸出中新的「添加欄」裏你STARTDATE + 2
  5. 加入所有的附加列輸出與一個「聯盟」

,如果你有一個小這樣只會工作日期之間的最長持續時間,如果你有40天,你需要40多個演員。

+0

謝謝。你能詳細解釋一下這兩種解決方案嗎?如果我處理每行如何返回多行? – 2010-09-09 08:44:35

+0

我在多播上詳細闡述了一下。關於SQL,我不能自己編寫SQL查詢,但我很確定這是可能的。只需從名稱,開始,結束的表開始。並詢問如何在stackoverflow中爲開始和結束之間的每個日期選擇一行。 – Cilvic 2010-09-09 13:51:14

+0

謝謝。我最終用一個存儲過程來解決它,該存儲過程計算開始和結束之間的天數。然後它在SP中使用一個while循環在我的表中插入一個每日日期的行。 – 2010-09-11 22:23:51