2012-04-17 2 views
0

나는 전형적인 테이블이 있습니다은 SQL 사용하여 하나의 셀에 여러 값을 삽입하는 2005

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'. 

그러나 그들 중 누구도 나를 위해 일한이, 위의 오류를 좀 보여 주 .

여기에서 문제가 될 수있는 것은 무엇입니까?

나는 마이크로 소프트 SQL 서버를 사용하고 2005

답변

1

이 구문 오류입니다.

당신은 특정 오류 스스로 알아내는에서 더 배울 것이다 :

일부 good examples 문제가 계속되면 what you're trying to do

의 느낌을 살펴 타고 syntax tree

살펴보십시오을

+0

완벽한, 도와 주셔서 감사합니다 :) – Somebody

+0

뭔가 SQL 서버의 내 버전과 관련, 원인은 내가 SQL 2008에서 동일한 일을하고 작동합니다 : ( – Somebody

+0

오우 ....이 모든 일이 항상 저에게 일어납니다. 미안해 내가 너를 그릇 인도했다면. – dfb

관련 문제