Thank you guys very much.
I'm going to add the export and also the import part so I can just look it up in my briefcas when I forget.
Thanks again!
USE AdventureWorks;
DECLARE @XMLdata XML
SELECT @XMLdata =
(SELECT
p.SalesPersonID "SalesPersonID"
, p.TerritoryID "TerritoryID"
, (SELECT TOP 5
s2.name "Name"
, s2.ModifiedDate "ModifiedDate"
FROM
Sales.Store s2
WHERE
s2.SalesPersonID = p.SalesPersonID
FOR XML PATH('Sale'), TYPE) "Sales"
FROM
Sales.SalesPerson p
WHERE
p.SalesPersonID = 275
FOR XML PATH ('SalesPerson'), TYPE)
--GET RECORDSET
SELECT
r.x.value('SalesPersonID[1]','int')
, r.x.value('TerritoryID[1]','int')
, d.x.value('Name[1]','VARCHAR(100)')
, d.x.value('ModifiedDate[1]','VARCHAR(100)')
FROM
@XMLdata.nodes('(/SalesPerson)') AS r(x) OUTER APPLY r.x.nodes('Sales/Sale') AS d(x)
--GET LEVELS
SELECT
t.c.value('SalesPersonID[1]','int')
, t.c.value('TerritoryID[1]','VARCHAR(255)')
FROM
@XMLdata.nodes('/SalesPerson') t(c);
SELECT
d.x.value('Name[1]','VARCHAR(100)')
, d.x.value('ModifiedDate[1]','VARCHAR(100)')
FROM
@XMLdata.nodes('(/SalesPerson)') AS r(x) OUTER APPLY r.x.nodes('Sales/Sale') AS d(x)