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
XML-tillägget i SQL-Server låter dig sammanfoga flera rader till en enda rad. Den faktiska avsikten med tillägget är att du kan mata ut som XML (uppenbarligen), men det finns några fiffiga knep som är biprodukter av tilläggen. I ovanstående fråga, om det fanns ett kolumnnamn i underfrågan (FullName) skulle det matas ut som
, eftersom det inte finns något kolumnnamn sammanfogar det helt enkelt raderna (inte bildar korrekt XML). PATH
del låter dig ange en extra nod, till exempel om du använder PATH('Name') i ovanstående skulle du få
Slutligen STUFF
tar bara bort semikolonet i början av listan.