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'
ADENDO
A extensão XML no SQL-Server permite concatenar várias linhas em uma única linha. A intenção real da extensão é que você possa produzir como XML (obviamente), mas existem alguns truques bacanas que são subprodutos das extensões. Na consulta acima, se houvesse um nome de coluna na subconsulta (FullName), seria gerado como
Joe Bloggs1 Joe Bloggs2
, porque não há nome de coluna, ele simplesmente concatena as linhas (não formando XML adequado). O CAMINHO
parte permite que você especifique um nó adicional, por exemplo, se você usar PATH('Name') acima, você obterá ;Joe Bloggs ;Joe Bloggs2 Se você combinar Path com um nome de coluna, obterá Joe Bloggs.
Finalmente o COISA
apenas remove o ponto e vírgula no início da lista.