Ho dati che assomiglia:SQL Server: FOR XML PATH - nidificazione/raggruppamento
OrderID CustomerID ItemID ItemName
10000 1234 111111 Product A
10000 1234 222222 Product B
10000 1234 333333 Product C
20000 5678 111111 Product A
20000 5678 222222 Product B
20000 5678 333333 Product C
Voglio scrivere una query T-SQL in SQL Server per restituire i dati in questo modo:
<Root>
<Order>
<OrderID>10000</OrderID>
<CustomerID>1234</CustomerID>
<LineItem>
<ItemID>11111</ItemId>
<ItemName>Product A</ItemName>
</LineItem>
<LineItem>
<ItemID>22222</ItemId>
<ItemName>Product B</ItemName>
</LineItem>
<LineItem>
<ItemID>33333</ItemId>
<ItemName>Product B</ItemName>
</LineItem>
</Order>
<Order>
<OrderID>20000</OrderID>
<CustomerID>5678</CustomerID>
<LineItem>
<ItemID>11111</ItemId>
<ItemName>Product A</ItemName>
</LineItem>
<LineItem>
<ItemID>22222</ItemId>
<ItemName>Product B</ItemName>
</LineItem>
<LineItem>
<ItemID>33333</ItemId>
<ItemName>Product B</ItemName>
</LineItem>
</Order>
</Root>
ho provato tornando la query in XML utilizzando:
FOR XML PATH ('Order'), root ('Root')
Ma che mi dà un nodo Order
per ogni riga (6 in totale) vs. solo un nodo ordine per ogni orderId
(2 in totale).
Qualche idea?
Grazie Bert. Che cosa fa "type" nell'istruzione subquery per xml path? – jared
@jared Significa, 'restituisce questo come tipo di dati XML'. Quindi, nella query precedente, restituisce solo la sottoquery come un piccolo frammento xml. – Bert
Fantastico. Grazie! – jared