0

我有典型的桌子:

LSRNbr  BatchNbr
111     1212
111     1414  

查询应该返回:

LSRNbr   BatchNbr
111      1212, 1414

我正在浏览解决方案,我发现了这两个:

解决方案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 回答