Sql PIVOT i agregat konkatenacji łańcucha
Chciałbym użyć przestawnego zapytania SQL, aby skonstruować tabelę wynikową, w której tekst konkatenacyjny powstanie w sekcji DATA tabeli przestawnej.
tj. mam następujący wynik z użycia prostego wyboru:
+------------+-----------------+---------------+ | 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 | +------------+-----------------+---------------+
Chciałbym skonstruować zapytanie wynikowe, które wyglądałoby tak:
+---------------------+------------------------+------------------------+---------------------------------------+-----------------+-------------------------------------+ | 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 | +---------------------+------------------------+------------------------+---------------------------------------+-----------------+-------------------------------------+
Wiem, jak używać instrukcji PIVOT w ms-sql, ale nie wiem, jak agregować nazwę zasobu w konkatenację elementów oddzielonych przecinkami dla każdego typu zasobu.
P. Mogłabym również skorzystać z rozwiązania wykorzystującego Martix dostarczonego przez SSRS 2008-R2, używając Report Builde 3 z pierwszą tabelą jako mojego zestawu danych i utworzyć macierz, która będzie agregować nazwy zasobów w ciąg rozdzielony przecinkami.