0

私は典型的なテーブルを持っています:

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 を使用しています

4

1 に答える 1

1

これらは構文エラーです。

特定のエラーを自分で把握することで、さらに多くのことを学ぶことができます。

構文ツリーを見てみましょう

あなたがやろうとしていることのいくつかの良い例を見てください

それでも問題が解決しない場合は、お気軽にさらに質問してください

于 2012-04-17T14:14:47.397 に答える