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'
ДОПЪЛНЕНИЕ
XML разширението в SQL-Server ви позволява да свържете няколко реда в един ред. Действителното намерение на разширението е да можете да извеждате като XML (очевидно), но има някои изящни трикове, които са странични продукти на разширенията. В горната заявка, ако имаше име на колона в подзаявката (пълно име), то щеше да се изведе като
, тъй като няма име на колона, той просто свързва редовете (без да формира правилен XML). PATH
част ви позволява да посочите допълнителен възел, например ако използвате PATH('Name') в горното, ще получите
И накрая НЕЩАТА
просто премахва точката и запетая в началото на списъка.