Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите с XML child для родителя  [new]
Почему2012
Guest
declare @t table (id int,quantity int)
insert into @t (id,quantity)
select
	1
	,1
union all
select
	2
	,2
	

select
	1 as tag
	,0 as parent
	
	,id as 'Goods!1!Id!element'
	
	,null as 'QuantityInfo!2!Quantity!element'
from @t
union all
select distinct
	2 as tag
	, 1 as parent
		
	,null
	
	,quantity
from @t
FOR XML EXPLICIT


<Goods>
  <Id>1</Id>
</Goods>
<Goods>
  <Id>2</Id>
  <QuantityInfo>
    <Quantity>1</Quantity>
  </QuantityInfo>
  <QuantityInfo>
    <Quantity>2</Quantity>
  </QuantityInfo>
</Goods>


А нужно,т.е. у меня количество почему то обе строки ставиться для товара с Id=2, а нужно чтобы для каждого свое.
<Goods>
  <Id>1</Id>
  <QuantityInfo>
    <Quantity>1</Quantity>
  </QuantityInfo>
</Goods>
<Goods>
  <Id>2</Id>
  <QuantityInfo>
    <Quantity>2</Quantity>
  </QuantityInfo>
</Goods>
4 июн 12, 10:52    [12660264]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с XML child для родителя  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
Почему2012,может как-то так

+

select 
Goods.id
,QuantityInfo.Quantity
from @t as Goods
inner join @t as QuantityInfo on  QuantityInfo.id = Goods.id
for xml auto,elements

4 июн 12, 11:02    [12660337]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с XML child для родителя  [new]
Почему2012
Guest
denis2710,

У меня сложный документ мне нужен именно FOR XML EXPLICIT
4 июн 12, 11:08    [12660381]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с XML child для родителя  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
Почему2012,а не проще ли тогда сразу рассказать о всей задаче.
автор
..мне нужен именно FOR XML EXPLICIT

далеко не факт.
автор
У меня сложный документ...

может все же не Sql Server тогда его должен создавать?
4 июн 12, 11:13    [12660405]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с XML child для родителя  [new]
Glory
Member

Откуда:
Сообщений: 104751
Почему2012
т.е. у меня количество почему то обе строки ставиться для товара с Id=2,

Нужно правильно упорядичивать и поля задавать
declare @t table (id int,quantity int)
insert into @t (id,quantity)
select
	1
	,1
union all
select
	2
	,2
	

select
	1 as tag
	,0 as parent
	
	,id as 'Goods!1!Id!element'
	
	,null as 'QuantityInfo!2!Quantity!element'
from @t
union all
select distinct
	2 as tag
	, 1 as parent
		
	,id
	
	,quantity
from @t order by 3,2,1
FOR XML EXPLICIT

Если вы уж так именно хотите использовать XML EXPLICIT
4 июн 12, 11:15    [12660418]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с XML child для родителя  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

> select distinct

а зачем здесь дистинкт?
спрашиваю не просто так. для того, чтобы получить "для каждого свое"
выборку надо правильно отсортировать. и, соответственно, нужно будет
включать во вторую часть union-а id (а не нулл, как вы сделали).

Posted via ActualForum NNTP Server 1.5

4 июн 12, 11:15    [12660420]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с XML child для родителя  [new]
Почему2012
Guest
Glory,

Спасибо
4 июн 12, 13:50    [12661552]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить