2011-09-19 3 views
0

내 목표는 사람 이름과 그의 결석에 대한 모든 이유 (연결되어 있고 문자열로 표시)를 표시하는 것입니다.SELECT 행에서 Concatinating 행 특정 필드 및 Concatinated 값 표시

다음 쿼리를 사용하여 EmployeeName, ReasonForAbsence를 표시합니다. 내가 AbsenceReason라는 모든 레코드 특정 열을 연결하고 표시하는 데 문제가 있습니다. 오류가 잘못된 구문 near = '입니다. 오류 -에 대한 자세한 정보 부재 이유 표시 부분에 대한 상황.

SELECT 
      --Displaying Name,    
       EMP.NAME, 


      --Displaying Absence Reason 
      (
       SELECT 
        @AbsenceReasons= @AbsenceReasons + ';' + REASONTEXT 
       FROM 
        ABSENCE 
       WHERE ID=EMP.ID 
       ) 
FROM 
      (
      SELECT 
        * 
       FROM 
         Employees 
      ) EMP 

내가 무엇을 놓쳤습니까?

은 ...

답변

1
마틴이 중복 질문 말했듯이

하지만 주셔서 감사합니다

SELECT DISTINCT Absence.EmpId, Reasons.AllReasons 
     FROM Absence 
    CROSS APPLY (SELECT ReasonText + ' ,' 
        FROM Absence EMP2 
        WHERE EMP2.EmpId= Absence.EmpId 
        FOR XML PATH('') 
) Reasons (AllReasons) 
관련 문제