﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>SQLServerCentral / Programming / XML  / XML: Adjust Element Positioning / Latest Posts</title><generator>InstantForum.NET v2.9.0</generator><description>SQLServerCentral</description><link>http://www.sqlservercentral.com/Forums/</link><webMaster>notifications@sqlservercentral.com</webMaster><lastBuildDate>Thu, 23 May 2013 02:00:45 GMT</lastBuildDate><ttl>20</ttl><item><title>RE: XML: Adjust Element Positioning</title><link>http://www.sqlservercentral.com/Forums/Topic1397387-21-1.aspx</link><description>Perfect.  Thanks very much for your quick assistance!</description><pubDate>Mon, 17 Dec 2012 14:39:28 GMT</pubDate><dc:creator>cs2data</dc:creator></item><item><title>RE: XML: Adjust Element Positioning</title><link>http://www.sqlservercentral.com/Forums/Topic1397387-21-1.aspx</link><description>Hi, One way of approaching it could be to use a CTE + sub query similar to this:[code="sql"];WITH xCTE (CoveredEntity) AS(	SELECT DISTINCT CoveredEntity	FROM @t)SELECT CoveredEntity AS '@Name', 	(		SELECT CoverageLoser AS 'Loser'		FROM @t t		WHERE t.CoveredEntity = xCTE.CoveredEntity		FOR XML PATH(''), TYPE	)FROM xCTEFOR XML PATH('Entity'), ROOT('UnClaimEvent')[/code]</description><pubDate>Mon, 17 Dec 2012 13:40:19 GMT</pubDate><dc:creator>arthurolcot</dc:creator></item><item><title>XML: Adjust Element Positioning</title><link>http://www.sqlservercentral.com/Forums/Topic1397387-21-1.aspx</link><description>I'm having trouble formatting an XML field in a query return.  I've boiled the problem part down to this bare logic:[code="sql"]DECLARE @t TABLE(	CoveredEntity	varchar(10),	CoverageLoser	varchar(10))INSERT INTO @t         --( CoveredEntity, CoverageLoser )SELECT 'Manager_A', 'Manager_Y'UNIONSELECT 'Manager_A', 'Manager_Z'UNIONSELECT 'Manager_B', 'Manager_Y'UNIONSELECT 'Manager_B', 'Manager_Z'UNIONSELECT 'Manager_C', 'Manager_Y'UNIONSELECT 'Manager_C', 'Manager_X'[/code]Now when I do this, [code="sql"]SELECT CoveredEntity AS '@Name',             CoverageLoser AS 'Loser'FROM @tFOR XML PATH('Entity'), ROOT('UnClaimEvent')[/code]I get the correct data:[code="xml"]&amp;lt;UnClaimEvent&amp;gt;  &amp;lt;Entity Name="Manager_A"&amp;gt;    &amp;lt;Loser&amp;gt;Manager_Y&amp;lt;/Loser&amp;gt;  &amp;lt;/Entity&amp;gt;  &amp;lt;Entity Name="Manager_A"&amp;gt;    &amp;lt;Loser&amp;gt;Manager_Z&amp;lt;/Loser&amp;gt;  &amp;lt;/Entity&amp;gt;  &amp;lt;Entity Name="Manager_B"&amp;gt;    &amp;lt;Loser&amp;gt;Manager_Y&amp;lt;/Loser&amp;gt;  &amp;lt;/Entity&amp;gt;  &amp;lt;Entity Name="Manager_B"&amp;gt;    &amp;lt;Loser&amp;gt;Manager_Z&amp;lt;/Loser&amp;gt;  &amp;lt;/Entity&amp;gt;  &amp;lt;Entity Name="Manager_C"&amp;gt;    &amp;lt;Loser&amp;gt;Manager_Y&amp;lt;/Loser&amp;gt;  &amp;lt;/Entity&amp;gt;  &amp;lt;Entity Name="Manager_C"&amp;gt;    &amp;lt;Loser&amp;gt;Manager_X&amp;lt;/Loser&amp;gt;  &amp;lt;/Entity&amp;gt;&amp;lt;/UnClaimEvent&amp;gt;[/code]But the .NET team wants it returned such that the Loser elements are nested in a single Entity tag per Entity (identified by the Name attribute):[code="xml"]&amp;lt;UnClaimEvent&amp;gt;  &amp;lt;Entity Name="Manager_A"&amp;gt;    &amp;lt;Loser&amp;gt;Manager_Y&amp;lt;/Loser&amp;gt;    &amp;lt;Loser&amp;gt;Manager_Z&amp;lt;/Loser&amp;gt;  &amp;lt;/Entity&amp;gt;  &amp;lt;Entity Name="Manager_B"&amp;gt;    &amp;lt;Loser&amp;gt;Manager_Y&amp;lt;/Loser&amp;gt;     &amp;lt;Loser&amp;gt;Manager_Z&amp;lt;/Loser&amp;gt;  &amp;lt;/Entity&amp;gt;  &amp;lt;Entity Name="Manager_C"&amp;gt;    &amp;lt;Loser&amp;gt;Manager_Y&amp;lt;/Loser&amp;gt;     &amp;lt;Loser&amp;gt;Manager_X&amp;lt;/Loser&amp;gt;  &amp;lt;/Entity&amp;gt;&amp;lt;/UnClaimEvent&amp;gt;[/code]Any ideas how to accomplish this?  I tried an example using multiple CTEs (effectively a self-join) but all I did was end up creating extra nesting.  Thanks.</description><pubDate>Mon, 17 Dec 2012 12:33:49 GMT</pubDate><dc:creator>cs2data</dc:creator></item></channel></rss>