See if this works?CREATE TABLE #tmp (id INT, DebtorNumber INT, InvoiceNumber INT, VALUE INT, DebtorValue INT);INSERT INTO #tmp VALUES(1,12345,1000,999,15000),(2,12345,1001,593,15000),(3,12345,1002,19,15000),(4,98023,500,223,8000)SELECT debtornumber AS dimension, debtorvalue, ( SELECT a.id,a.invoicenumber, a.value FROM #tmp a WHERE a.DebtorNumber = b.debtornumber FOR XML PATH('detail'),TYPE ) AS detailsFROM #tmp bFOR XML PATH(''), ROOT('summary');DROP TABLE #tmp;