Tôi gặp sự cố khi tạo câu lệnh SQL cho sqlserver2008. Tôi có các dữ liệu sau:Câu lệnh SQL cho hai nhóm cột
city person priority
-----------------------------------
Linz Mike 1
Wien Mike 1
Linz Tom 1
Wien Tom 1
Linz John 1
Linz Sarah 2
Điều này có nghĩa rằng người Mike và Tom chọn các thành phố Linz và Wien với ưu tiên 1.
John chọn Linz với ưu tiên 1.
Sarah chọn Linz với mức độ ưu tiên 2.
bây giờ tôi muốn đầu ra sau đây:
cities persons priority
-----------------------------------
Linz, Wien Mike, Tom 1
Linz John 1
Linz Sarah 2
Tôi đã có sau SQL Statement nhưng tôi không nhận được kết quả mong đợi như truy vấn này sẽ nói rằng John cũng có một mục nhập cho Wien ưu tiên 1.
SELECT
(SELECT
STUFF((SELECT ', ' + d.City
FROM (SELECT DISTINCT d2.City FROM dbo.DummyTable d2
WHERE d2.Priority = d1.Priority) d
FOR XML PATH('')), 1, 2, '')
)
AS Cities,
(SELECT
STUFF((SELECT ', ' + d.Person
FROM (SELECT DISTINCT d2.Person FROM dbo.DummyTable d2
WHERE d2.Priority = d1.Priority) d
FOR XML PATH('')), 1, 2, '')
)
AS Persons,
d1.Priority
FROM
dbo.DummyTable d1
GROUP BY d1.Priority
Bạn cũng có thể sử dụng này SQL Fiddle
Bất kỳ ý tưởng nào về cách truy vấn này có thể được viết bằng SQL?