sql >> Database >  >> RDS >> Sqlserver

Hoe meerdere rijen samenvoegen?

Gebruik voor SQL Server 2005+ de STUFF-functie en 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

Maar u mist details over waar de gegevens die u wilt omzetten in een door komma's gescheiden tekenreeks zich bevinden en hoe deze zich verhouden tot een werknemersrecord...



  1. Hoe de dagnaam van een datum in Oracle te krijgen

  2. Bulksgewijs invoegen of bijwerken voor tabellen met bijlagevelden

  3. Installatie van pg gem mislukt, mkmf.rb kan geen header-bestanden voor ruby ​​vinden (Mac OSX 10.6.5)

  4. Inleiding tot beveiliging op rijniveau in SQL Server