连接行特定字段并在SELECT query-SQL中显示连接值

时间:2011-09-19 11:21:15

标签: sql-server-2005

我的目的是显示他缺席的人名和所有原因(以字符串形式连接并显示)。

我使用以下查询来显示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 个答案:

答案 0 :(得分: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)