How to concatenate multiple rows?

后端 未结 2 1218
遇见更好的自我
遇见更好的自我 2020-12-18 15:51

I have the following query which returns the salary of all employees. This work perfectly but I need to collect extra data that I will aggregate into one cell (see Result Se

2条回答
  •  粉色の甜心
    2020-12-18 16:21

    For SQL Server 2005+, use the STUFF function and FOR XML PATH:

    WITH summary_cte AS (
       SELECT Employee.Id, SUM(Pay) as Salary
         FROM Employee
         JOIN PayCheck ON PayCheck.EmployeeId = Employee.Id
     GROUP BY Employee.Id)
    SELECT sc.id, 
           sc.salary,
           STUFF((SELECT ','+ yt.data
                    FROM your_table yt
                   WHERE yt.id = sc.id
                GROUP BY yt.data
                 FOR XML PATH(''), TYPE).value('.','VARCHAR(max)'), 1, 1, '')
      FROM summary_cte sc
    

    But you're missing details about where the data you want to turn into a comma delimited string is, and how it relates to an employee record...

提交回复
热议问题