我试图将一些数据汇总到一个报告中,并需要连接其中一个表的行值.这是基本的表结构:
评测
ReviewID
ReviewDate
Run Code Online (Sandbox Code Playgroud)
评审
ReviewerID
ReviewID
UserID
Run Code Online (Sandbox Code Playgroud)
用户
UserID
FName
LName
Run Code Online (Sandbox Code Playgroud)
这是M:M的关系.每个评论都可以有很多评论者; 每个用户都可以与许多评论相关联.
基本上,我想要看的是Reviews.ReviewID,Reviews.ReviewDate,以及该Review的所有相关用户的FName的串联字符串(逗号分隔).
代替:
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
Run Code Online (Sandbox Code Playgroud)
显示这个:
ReviewID---ReviewDate----Users
1----------12/1/2009-----Bob, Joe, Frank
2----------12/9/2009-----Sue, Alice
Run Code Online (Sandbox Code Playgroud)
我发现这篇文章描述了一些方法,但是大多数方法似乎只处理一个表而不是多个; 不幸的是,我的SQL-fu不够强大,无法根据我的情况进行调整.我对该网站上使用FOR XML PATH()的示例特别感兴趣,因为它看起来最干净,最直接.
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;
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我一把吗?任何帮助将不胜感激!