Połącz wartości wiersza T-SQL
Próbuję zebrać dane do raportu i połączyć wartości wierszy jednej z tabel. Oto podstawowa struktura tabeli:
Recenzje
ReviewID
ReviewDate
Recenzenci
ReviewerID
ReviewID
UserID
Użytkownicy
UserID
FName
LName
To jest relacja M: M. Każdy przegląd może mieć wielu recenzentów; każdy użytkownik może być powiązany z wieloma recenzjami.
Zasadniczo wszystko, co chcę zobaczyć, to Reviews.ReviewID, Reviews.ReviewDate i połączony ciąg nazw FName wszystkich powiązanych użytkowników dla tego przeglądu (rozdzielany przecinkami).
Zamiast:
ReviewID---ReviewDate---User
1----------12/1/2009----Bob
1----------12/1/2009----Joe
1----------12/1/2009----Frank
2----------12/9/2009----Sue
2----------12/9/2009----Alice
Wyświetl to:
ReviewID---ReviewDate----Users
1----------12/1/2009-----Bob, Joe, Frank
2----------12/9/2009-----Sue, Alice
znalazłemto artykuł opisujący kilka sposobów na to, ale większość z nich wydaje się dotyczyć tylko jednej tabeli, a nie wielu; niestety mój SQL-fu nie jest wystarczająco silny, aby dostosować je do moich okoliczności. Szczególnie interesuje mnie przykład na tej stronie, który wykorzystuje FOR XML PATH (), ponieważ wygląda najczystszy i najbardziej prosty.
SELECT p1.CategoryId,
( SELECT ProductName + ', '
FROM Northwind.dbo.Products p2
WHERE p2.CategoryId = p1.CategoryId
ORDER BY ProductName FOR XML PATH('')
) AS Products
FROM Northwind.dbo.Products p1
GROUP BY CategoryId;
Czy ktoś może mi w tym pomóc? Każda pomoc byłaby bardzo mile widziana!