SQL Server: GROUP BY de dois níveis com saída XML
Eu tenho uma tabela de dados hierárquicos que estou tentando selecionar como um valor XML único e agrupado:
Colunas:Id, Type, SubType, SubSubType
Dados de amostra:
Id Type Subtype SubSubType
1 Product Documentation Brochures Functional Brochures
2 Product Documentation Brochures Fliers
3 Product Documentation Data Sheets and Catalogs Data Sheets
4 Product Documentation Data Sheets and Catalogs Catalogs
5 Other Documentation Other classification User Guides
Para os dados acima, gostaria de produzir o seguinte xml:
<AllTypes>
<Type name="Product Documentation">
<SubType name="Brochures">
<SubSubType name="Functional Brochures"/>
<SubSubType name="Fliers"/>
</SubType>
<SubType name="Data Sheets and Catalogs">
<SubSubType name="Data Sheets"/>
<SubSubType name="Catalogs"/>
</SubType>
</Type>
<Type name="Other Documentation">
<SubType name="Other classification">
<SubSubType name="User Guides"/>
</SubType>
</Type>
</AllTypes>
isto é, uma única estrutura xml contendo todas as linhas da tabela acima, agrupada pela primeira coluna (Type), e ainda agrupada pela segunda coluna (SubType).