Would be much more predictable and easier to construct the XML using XML PATH than XML AUTO. However, if you do want to stick with XML AUTO, this is an example of how you can do it. I am aliasing the tables to match the element names (because that is what XML AUTO requires you to do).CREATE TABLE #tmp ( Title VARCHAR(32), Surname VARCHAR(32), Address1 VARCHAR(32),Address2 VARCHAR(32));INSERT INTO #tmp VALUES ('Mr','Smith','1 Washington Street', 'Stamford'), ('Ms','Jones','2 Lincoln Ave', 'New York');WITH XMLNAMESPACES('UKPTest' as co)SELECT Title, Surname, Address.Address1, Address.Address2FROM #tmp ClientDetails CROSS APPLY ( select t2.Address1, t2.Address2 from #tmp t2 where ClientDetails.Surname = t2.Surname ) AS [Address] FOR XML AUTO, ELEMENTS, ROOT ('mainrootname')DROP TABLE #tmp;