Intentando escribir una consulta XML de SQL Server 2008. He simplificado mi ejemplo aquí, pero teniendo en cuenta estos datos:Salida de XML anidado en SQL Server 2008
create table #parentinfo (name varchar(50), city varchar(50), state varchar(50))
insert #parentinfo values ('joe', 'yonkers', 'ny')
insert #parentinfo values ('sue', 'sacremento', 'ca')
-- parentname is foreign key to name field in #parentinfo
create table #childinfo (parentname varchar(50), childxml xml)
insert #childinfo values ('joe', '<child>mary</child><child>ben</child>')
insert #childinfo values ('sue', '<child>sally</child><child>roger</child>')
que necesito para generar archivos XML que tiene este aspecto:
<parentinfo>
<parent>
<name>joe</name>
<city>yonkers</city>
<state>ny</state>
<children>
<child>mary</child>
<child>ben</child>
</children>
</parent>
<parent>
<name>sue</name>
<city>sacremento</city>
<state>ca</state>
<children>
<child>sally</child>
<child>roger</child>
</children>
</parent>
</parentinfo>
Esta consulta hace eso:
select name,
city,
state,
(select childxml
from #childinfo c
where c.parentname = p.name
--for xml auto, type, elements
) as 'children'
from #parentinfo p
group by name, city, state
for xml path('parent')
Sin embargo , Tengo problemas cuando uno de los padres tiene una fila adicional en la tabla de información secundaria. Agregue esta fila a la tabla:
insert #childinfo values ('joe', '<child>chucky</child><child>pebbles</child>')
Y mi consulta explota diciendo que la subconsulta arroja más de 1 valor. Necesito manejar este escenario. ¿Alguien sabe cómo resolver?
Gracias.
¿Por qué su tabla '# childinfo' contiene un fragmento XML ya? Sería ** mucho más fácil ** si tuviera solo una tabla secundaria normal con algunos campos, y no un XML ya ... –