Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie verkettet man mehrere Zeilen?

Verwenden Sie für SQL Server 2005+ die STUFF-Funktion und 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

Ihnen fehlen jedoch Details darüber, wo sich die Daten befinden, die Sie in eine durch Kommas getrennte Zeichenfolge umwandeln möchten, und wie sie sich auf einen Mitarbeiterdatensatz beziehen...