This worked for me with your xml:SELECTt.c.value('WrntyID[1]', 'nvarchar(12)') WrntyID,t.c.value('Date[1]', 'Date') Date,s.c.value('AgentName[1]', 'nvarchar(50)') AgentName,s.c.value('AgentExternalID[1]', 'nvarchar(5)') AgentExternalID,c.c.value('AccountExternalID[1]', 'nvarchar(50)') AccountExternalID,c.c.value('AccountName[1]', 'nvarchar(5)') AccountNameFROM @xml.nodes('/SalesTransaction/TransactionHeader/TransactionHeaderFields') AS t(c)CROSS APPLY t.c.nodes('/SalesTransaction/TransactionHeader/SalesRepFields') s(c)CROSS APPLY s.c.nodes('/SalesTransaction/TransactionHeader/AccountFields') c(c)