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'
補遺
SQL-Server の XML 拡張により、複数の行を 1 つの行に連結できます。拡張機能の実際の目的は、(明らかに) XML として出力できるようにすることですが、拡張機能の副産物である気の利いたトリックがいくつかあります。上記のクエリでは、サブクエリ (FullName) に列名がある場合、
として出力されます。 、列名がないため、単に行を連結します (適切な XML を形成しません)。 パス
たとえば、上記で PATH('Name') を使用すると、
最後に STUFF
リストの先頭にあるセミコロンを削除するだけです。