2016-03-15 45 views
0

我有一個表有PKeyFKey,LineNumTextLine連接所有項目與匹配的FKey的

在我的表中,我有來自FKey的多個結果。這是一對多的關係。

我想要做的就是將與FKey匹配的TextLine s連接成一行。 (原因是我們正在從舊的COBOL數據庫轉換到T-SQL,並將信息傳輸到具有不同結構的新數據庫,其中這些「註釋」將全部由單個字段處理)

我的最終查詢會是這個樣子:

SELECT Fkey, Line1 + Line2..., 
FROM Table1 

的問題是,有行的非一致的號碼。另外,我試圖避免任何動態查詢,因爲我想讓未受過培訓的/基本用戶能夠修改和自定義此查詢。有沒有辦法做到這一點?

回答

0

你可以做這樣的事情來獲得在單行中的所有數據:

select 
    t.FKey, 
    STUFF((SELECT ',' + textline 
      from Table1 where FKey = t.FKey 
       FOR XML PATH('')), 1, 1, '') as ConcatTextLines 
from 
    Table1 t 
group by t.FKey 

將有上ConcatTextLines列中的某些尺寸的限制,所以如果你有成千上萬行的這個可能不適用一些外鍵。

+0

我想我從來沒有超過5-6行,所以它不應該是一個問題。感謝您的建議! – phroureo

相關問題