Für meine Situation versuche ich, die Stackoverflow-Lösung here anzuwenden.Group By-Klausel mit durch Komma getrennten Werten
Hier sind meine Tabellen:
Spezialität:
Id Dish ChefId
1 Caviar 1
2 Caviar 2
3 Foie gras 2
4 Foie gras 3
5 Foie gras 5
6 Truffles 1
7 Truffles 4
Chef:
Id Name
1 Jake
2 Tara
3 Oscar
4 Linda
5 Wally
Bisher kam ich mit der folgenden SQL-Anweisung auf:
SELECT Dish, ChefId =
STUFF((SELECT ', ' + CONVERT(varchar(10), ChefId)
FROM Specialty s1
WHERE s1.Dish = s2.Dish
FOR XML PATH('')), 1, 2, '')
FROM Specialty s2
GROUP BY Dish
Mit dem Ergebnis:
Dish Chef
Caviar 1, 2
Foie gras 2, 3, 5
Truffles 1, 4
Aber ich möchte das Endergebnis erhalten:
Dish Chef
Caviar Jake, Tara
Foie gras Tara, Oscar, Wally
Truffles Jake, Linda
den Link, der als Duplikat korrekt markiert wurde, eingeben – scsimon
Join Specialty S1 zum Chef Tisch und Verwenden Sie die Chefnamen statt IDs in der für xml Pfad – twoleggedhorse
Sie haben den schwierigen Teil bereits getan. Um die Namen zu erhalten ist trivial, es ist nur ein Join in der Abfrage in Ihrem STUFF. –