2014-12-29 154 views
0

我目前使用SSIS將數據輸入到SQL Server數據庫中。該計劃是爲了每週這樣做,但發生的日期可能會根據數據何時推出而有所不同。派生日期計算

我使用SSIS從Excel工作表中獲取數據並將每行輸入數據庫(每週約150行)。唯一的共同點是所有行之間的日期。我希望在每一行中的每一行添加一個日期,以便通過它。由於推送日期可能有所不同,因此我無法使用當前日期,我想使用爲該行輸入的上一個日期的一週。

但由於有大約150行,我不知道如何實現這一點。如果我可以在SQL Server中進行設置,那麼每次輸入新的一組行時,它會從前一組行中增加7天,這將會很好。但我也很樂意在SSIS中做到這一點。

有沒有人有任何線索如何實現這一目標?另外,我不介意在C#中做這件事。

+0

添加7天在哪裏?除了其他專欄之外,您是否還有專欄來跟蹤日期? –

+0

嗨Shree。我想爲日期添加一個列並將日期插入到使用任何方法工作的日期中。 – Danrex

+0

那麼我是否有權說你想獲得表中數據的最新數據輸入日期,爲此添加7天,然後插入所有具有該日期的新行? –

回答

1

下面就做你想做的一種方式:

  1. 在你的目標表跟蹤的數據錄入日期創建一個列。
  2. 在數據流任務之前添加一個執行SQL任務。此任務將檢索最近的數據輸入日期+ 7天。查詢應該是這樣的:

    select dateadd(day,7,max(trackdate)) from targettable

  3. 分配SQL結果到一個包變量。

  4. 在數據流任務的源組件和目標組件之間添加派生列轉換。創建一個虛擬列以保存跟蹤日期並將變量分配給它。

  5. 將Excel映射到數據流任務中的表格時,將先前創建的虛擬列映射到跟蹤日期列。現在,當您將數據寫入數據庫時​​,您的跟蹤列將具有期望的日期。

Derived Column Transformation

+0

我會給這個去吧 – Danrex

+0

我似乎無法得到變量到表中。我用你的SQL語句創建了它,但是在我的數據流中,我不知道如何將它放入列 – Danrex

+0

我想你可以將它添加到映射列中。我現在沒有安裝SSIS,所以無法提供屏幕截圖,但想法是在映射選項卡的源列側傳遞它。 –