私は典型的なテーブルを持っています:
LSRNbr BatchNbr
111 1212
111 1414
そして、クエリは次を返す必要があります。
LSRNbr BatchNbr
111 1212, 1414
これに対する解決策を探していたところ、次の2つが見つかりました。
解決策 1:
;WITH C AS
(
SELECT LSRNbr, BatchNbr FROM tblDTS_LSRBatch
)
SELECT Distinct LSRNbr,
STUFF((SELECT ';' + BatchNbr FROM tblDTS_LSRBatch WHERE LSRNbr = c.LSRNbr FOR XML PATH('')),1,1,'')
FROM C
エラー:
Msg 170, Level 15, State 1, Line 1
Line 1: Incorrect syntax near ';'.
Msg 170, Level 15, State 1, Line 7
Line 7: Incorrect syntax near 'XML'.
解決策 2:
SELECT
[LSRNbr], REPLACE(RTRIM((SELECT [BatchNbr] + ' ' FROM tblDTS_LSRBatch WHERE (LSRNbr = Results.LSRNbr ) FOR XML PATH (''))),' ',', ') AS NameValues
FROM tblDTS_LSRBatch Results
GROUP BY LSRNbr
エラー:
Msg 170, Level 15, State 1, Line 2
Line 2: Incorrect syntax near 'XML'.
しかし、どれもうまくいきませんでした。上記のエラーを参照してください。
ここで何が問題になる可能性がありますか?
Microsoft SQL Server 2005 を使用しています