Tôi đang cố gắng thu thập một số dữ liệu cho một báo cáo và cần phải nối các giá trị hàng của một trong các bảng. Dưới đây là cấu trúc bảng cơ bản:Ghép nối các giá trị hàng T-SQL
Nhận xét
ReviewID
ReviewDate
phản biện
ReviewerID
ReviewID
UserID
Người dùng
UserID
FName
LName
Đây là mối quan hệ M: M. Mỗi Đánh giá có thể có nhiều Người đánh giá; mỗi Người dùng có thể được liên kết với nhiều Bài đánh giá.
Về cơ bản, tất cả những gì tôi muốn xem là Reviews.ReviewID, Reviews.ReviewDate và chuỗi nối của FName của tất cả người dùng được liên kết cho Đánh giá đó (được phân cách bằng dấu phẩy).
Thay vì:
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
hiển thị này:
ReviewID---ReviewDate----Users
1----------12/1/2009-----Bob, Joe, Frank
2----------12/9/2009-----Sue, Alice
Tôi đã tìm thấy this bài viết mô tả một số cách để làm điều này, nhưng hầu hết trong số này dường như chỉ đối phó với một bảng, không nhiều ; Thật không may, SQL-fu của tôi không đủ mạnh để thích ứng với những hoàn cảnh của tôi. Tôi đặc biệt quan tâm đến ví dụ trên trang web sử dụng FOR XML PATH() vì nó trông sạch sẽ và thẳng tiến nhất.
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;
Có ai có thể cho tôi một tay với điều này không? Mọi sự trợ giúp sẽ rất được trân trọng!
Tương tự như http://stackoverflow.com/questions/122942/how-to-return-multiple -giá trị-trong-một-cột-t-sql và http://stackoverflow.com/questions/451415/simulating-groupconcat-mysql-function-in-ms-sql-server-2005 – VolkerK