Mam problem z utworzeniem instrukcji SQL dla sqlserver2008. Mam następujące dane:Instrukcja SQL dla dwóch kolumn grupowych
city person priority
-----------------------------------
Linz Mike 1
Wien Mike 1
Linz Tom 1
Wien Tom 1
Linz John 1
Linz Sarah 2
Oznacza to, że osoby Mike i Tom wybrać miast Linz i Wien z priorytetu 1.
John wybiera Linz z pierwszeństwem 1.
Sarah wybiera Linz z priorytetem 2.
teraz chcę następujący wynik:
cities persons priority
-----------------------------------
Linz, Wien Mike, Tom 1
Linz John 1
Linz Sarah 2
już mam następujący instrukcja_sql ale nie dostać oczekiwanego rezultatu jak ta kwerenda byłoby powiedzieć, że John posiada również wejście dla Wien z priorytetu 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
można również skorzystać z tej SQL Fiddle
Jakieś pomysły, w jaki sposób zapytanie to można napisać w języku SQL?