我正在试图为一份报告整理一些数据,需要将其中一个表的行值连接起来。以下是基本表格结构:
评论
ReviewID
ReviewDate
审阅者
ReviewerID
ReviewID
UserID
用户
UserID
FName
LName
这是一种多对多的关系。每个评论可以有多个评论者;每个用户可以与多个评论相关联。
基本上,我想要看到的是Reviews.ReviewID、Reviews.ReviewDate和与该评论相关联的所有用户的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
显示这个:
ReviewID---ReviewDate----Users
1----------12/1/2009-----Bob, Joe, Frank
2----------12/9/2009-----Sue, Alice
我找到了这篇文章,介绍了一些方法来实现这个目的,但大部分似乎只处理一个表,而不是多个表;不幸的是,我的SQL技术水平不足以将它们适应我的情况。我对该网站上使用 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;
有人可以帮我一下吗?非常感谢您的任何帮助!