2013-10-09 62 views
0

我有一個平面文件中的Active Directory中的數據源,需要使用SSIS將其導出到SQL Server。我的挑戰是我想要在SSIS中執行所有操作,並將數據導出到數據庫中作爲最終輸出。我的平面文件有幾行軸承需要組合成一排相同的用戶名,然後在一列在我的插圖串聯數據如下:在SSIS中合併具有相同用戶名的行

Username  Office  LocationID Dept 
    --------  ---------- ---------- ----- 
1. btan   HQ    01   Acct 
2. cvill   South   04   HR 
3. cvill   North   02   HR 
4. btan   East   03   Acct 
5. cvill   West   05   HR 
6. lkays   HQ    01   Legal 

我的輸出應該如下所示,都應該使用SSIS完成:

Username  LocationID  Dept 
    --------  ----------  ----- 
1. btan   01, 03   Acct 
2. cvill   04, 02, 05  HR 
6. lkays   01    Legal 

任何幫助將非常感激。

+1

你是否想聽到你真的*真的不想在列中存儲分隔列表? – billinkc

+0

查看https://www.google.com/search?q=string+aggregation+tsql,但@billinkc是正確的 - 這僅適用於報告/演示文稿。在數據庫中,它應該通過關係來完成。 –

+0

你總是可以得到一個逗號分隔的LocationID列表,但這是一個很差的數據庫模型 –

回答

0

像這樣的事情會得到你一個逗號分隔的ID

SELECT Username, STUFF(IDList, 1,2,'') AS LocationID, Dept 
FROM TableName T OUTER APPLY 
          (
          SELECT ', ' + LocationID [text()] 
          FROM TableName 
          WHERE UserName = T.UserName 
          FOR XML PATH('') 
          ) T2(IDList) 
+0

「我的輸出應該如下,它應該全部使用SSIS完成」 – billinkc

+0

嘗試ExecuteSql任務中的代碼,我希望它會給你你在問題中顯示的輸出。 –

1

的名單我支持之前的建議,這是一個糟糕的數據模型,我也支持SQL(非SSIS)解決方案。但是,如果您不顧我們的警告而必須遵循此路徑,請查看SSIS樞軸運算符。您需要將結果列連接成一列。

相關問題