SQL PIVOT und String-Verkettung aggregieren
Ich möchte eine Pivot-SQL-Abfrage verwenden, um eine Ergebnistabelle zu erstellen, in der der Text als Ergebnis im DATA-Abschnitt der Pivot-Tabelle verkettet wird.
Das heißt, ich habe das folgende Ergebnis aus der Verwendung einer einfachen Auswahl:
+------------+-----------------+---------------+ | Event Name | Resource Type | Resource Name | +------------+-----------------+---------------+ | Event 1 | Resource Type 1 | Resource 1 | | Event 1 | Resource Type 1 | Resource 2 | | Event 1 | Resource Type 2 | Resource 3 | | Event 1 | Resource Type 2 | Resource 4 | | Event 1 | Resource Type 3 | Resource 5 | | Event 1 | Resource Type 3 | Resource 6 | | Event 1 | Resource Type 3 | Resource 7 | | Event 1 | Resource Type 4 | Resource 8 | | Event 2 | Resource Type 5 | Resource 1 | | Event 2 | Resource Type 2 | Resource 3 | | Event 2 | Resource Type 3 | Resource 11 | | Event 2 | Resource Type 3 | Resource 12 | | Event 2 | Resource Type 3 | Resource 13 | | Event 2 | Resource Type 4 | Resource 14 | | Event 2 | Resource Type 5 | Resource 9 | | Event 2 | Resource Type 5 | Resource 16 | +------------+-----------------+---------------+
Und ich möchte eine Ergebnisabfrage erstellen, die so aussieht:
+---------------------+------------------------+------------------------+---------------------------------------+-----------------+-------------------------------------+ | Event/Resource Type | Resource Type 1 | Resource Type 2 | Resource Type 3 | Resource Type 4 | Resource Type 5 | +---------------------+------------------------+------------------------+---------------------------------------+-----------------+-------------------------------------+ | Event 1 | Resource 1, Resource 2 | Resource 3, Resource 4 | Resource 5, Resource 6, Resource 7 | Resource 8 | NULL | | Event 2 | NULL | Resource 3 | Resource 11, Resource 12, Resource 13 | Resource 14 | Resource 1, Resource 9, Resource 16 | +---------------------+------------------------+------------------------+---------------------------------------+-----------------+-------------------------------------+
Ich kann eine PIVOT-Anweisung in ms-sql verwenden, aber ich kann den Ressourcennamen nicht zu einer Verkettung von durch Kommas getrennten Elementen für jeden Ressourcentyp zusammenfassen.
PS: Ich könnte auch eine Lösung mit dem von SSRS 2008-R2 bereitgestellten Martix verwenden, indem ich Report Builde 3 mit der ersten Tabelle als Datensatz verwende und eine Matrix erstelle, die die Ressourcennamen in einer durch Kommas getrennten Zeichenfolge zusammenfasst.