SELECT agenda.AgendaItemNumber,
Agenda.AgendaName,
AgendaType.AgendaTypeDescription,
STUFF(( SELECT ';' + FullName
FROM UserDetails
WHERE UserDetails.AgendaID = Agenda.AgendaID
FOR XML PATH('')
), 1, 1, '') AS fullName
FROM Agenda
INNER JOIN AgendaType
ON AgendaType.AgendaTypeID=Agenda.AgendaTypeID
INNER JOIN UserDetails
ON Agenda.AgendaID = Userdetails.AgendaID
WHERE agenda.AgendaTypeID = '2'
AND AgendaItemNumber = AgendaItemNumber
AND AgendaName = AgendaName
AND AgendaTypeDescription = AgendaTypeDescription
AND AgendaItemNumber >= '3'
ADENDUM
Met de XML-extensie in SQL-Server kunt u meerdere rijen samenvoegen tot één rij. De eigenlijke bedoeling van de extensie is dat je deze als XML kunt uitvoeren (uiteraard), maar er zijn enkele handige trucs die bijproducten zijn van de extensies. Als er in de bovenstaande query een kolomnaam in de subquery (FullName) was, zou deze worden uitgevoerd als <FullName>Joe Bloggs1</FullName><FullName>Joe Bloggs2</FullName>
, omdat er geen kolomnaam is, voegt het eenvoudig de rijen samen (geen juiste XML). Het PATH
deel stelt u in staat een extra knooppunt op te geven, bijvoorbeeld als u PATH('Naam') gebruikt in het bovenstaande, krijgt u <Name>;Joe Bloggs</Name><Name>;Joe Bloggs2</Name>
Als je Pad combineert met een kolomnaam, krijg je Joe Bloggs.
Eindelijk de STUFF
verwijdert gewoon de puntkomma aan het begin van de lijst.