1
я получил следующие 2 таблицы с даннымиКак создать иерархию с FOR XML на SQLServer
declare @tab1 table(a int, name varchar(10), street varchar(20))
insert @tab1 values(1,'Bruce', 'my street')
insert @tab1 values(2,'Chuck', 'another street')
declare @tab2 table(a int, b varchar(10))
insert @tab2 values(1,'a')
insert @tab2 values(1,'b')
insert @tab2 values(2,'c')
insert @tab2 values(2,'e')
Я пытаюсь создать XML-документ, который должен выглядеть как этот
<Person>
<PersonInfo>
<Name>Bruce</Name>
<Street>my street</Street>
</PersonInfo>
<PersonSkill>
<Type>a</Type>
<Type>b</Type>
</PersonSkill>
</Person>
Так пока мой SQL выглядит следующим образом
SELECT name AS "PersonInfo/Name",
street AS "PersonInfo/Street",
b AS "PersonSkill/Type"
FROM @tab1 t1 JOIN @tab2 t2 ON t1.a = t2.a
WHERE NAME = 'Bruce'
FOR XML PATH('Person')
И дает этот результат
<Person>
<PersonInfo>
<Name>Bruce</Name>
<Street>my street</Street>
</PersonInfo>
<PersonSkill>
<Type>a</Type>
</PersonSkill>
</Person>
<Person>
<PersonInfo>
<Name>Bruce</Name>
<Street>my street</Street>
</PersonInfo>
<PersonSkill>
<Type>b</Type>
</PersonSkill>
</Person>
Как я могу избежать получения 2 документов?
2 documentsemnts? или 2 потребности в записи таблицы2? – Ajay2707
Мне нужно иметь обе строки из tab2, вставленные в документ. <---- Первый ряд от tab2 б <---- Второй ряд tab2 PersonSkill> –
CruelIO
его не возможно в качестве структуры данных .. – Ajay2707