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
Ekstensi XML di SQL-Server memungkinkan Anda untuk menggabungkan beberapa baris menjadi satu baris. Maksud sebenarnya dari ekstensi adalah agar Anda dapat menampilkan sebagai XML (jelas), tetapi ada beberapa trik bagus yang merupakan produk sampingan dari ekstensi. Dalam query di atas, jika ada nama kolom di subquery (FullName) itu akan ditampilkan sebagai <FullName>Joe Bloggs1</FullName><FullName>Joe Bloggs2</FullName>
, karena tidak ada nama kolom, itu hanya menggabungkan baris (tidak membentuk XML yang tepat). PATH
part memungkinkan Anda untuk menentukan node tambahan, misalnya jika Anda menggunakan PATH('Name') di atas, Anda akan mendapatkan <Name>;Joe Bloggs</Name><Name>;Joe Bloggs2</Name>
Jika Anda menggabungkan Path dengan nama kolom, Anda akan mendapatkan Joe Bloggs.
Akhirnya STUFF
cukup hapus titik koma di awal daftar.