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!

questionAnswers(15)

yourAnswerToTheQuestion