Pivot Oracle z podzapytaniem
Używam przestawnego w Oracle PL SQL Developer w następujący sposób:
SELECT *
FROM population
PIVOT (AVG(Total) for Data_Type IN ('Group1','Group2','Group3'))
Działa to dobrze, ale nie chcę edytować za każdym razem, gdy dodawana jest nowa kolumna lub jedna jest zmieniana (tj. Grupa 4, 5, 6 itd.), Więc wypróbowałem następujące zapytanie:
SELECT *
FROM population
PIVOT (AVG(Total) for Data_Type IN (SELECT Data_Type FROM population))
Powoduje to następujący błąd: ORA-00936: brakujące wyrażenie.
Po kilku badaniach wydaje się, że mogę wygenerować wyniki za pomocą XML, więc spróbowałem:
SELECT *
FROM population
PIVOT XML(AVG(Total) for Data_Type IN (ANY))
W rzeczywistości generuje pożądane dane, ale w formacie XML. Moje pytanie brzmi: jak mogę przekonwertować wyniki XML na standardowy format tabeli w PL SQL Developer? Lub, jeśli chcę przenieść wygenerowany plik XML do narzędzia takiego jak Crystal Reports, muszę mieć plik schematu dla tych wyników. Czy jest to coś, co można łatwo wygenerować automatycznie w SQL?