Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите пожалуйсто с выводом в XML / 4 сообщений из 4, страница 1 из 1
09.08.2002, 22:18:32
    #32042290
DMITRY POLSTIANKO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйсто с выводом в XML
Добрый день

есть таблица test

Column1 Column2 Column3
-------- -------- --------
a1 b1 c1
a1 b1 c2
a1 b2 c3

Как можно получить результат в виде XML

<Column1 name="a1">
<Column2 name="b1">
<Column3 name="c1"/>
<Column3 name="c2"/>
</Column2>
<Column2 name="b2"/>
<Column3 name="c1"/>
</Column2>
</Column1>

Таблица есть только одна
Мучаюсь вторую неделю :O)
...
Рейтинг: 0 / 0
10.08.2002, 00:05:11
    #32042303
Dimos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйсто с выводом в XML
Попробуйте вариации на тему

select distinct T1.a,T2.b,T3.c from
((test T3 left outer join test T2 on T2.b=T3.b and T2.a=T3.a)
left outer join test T1 on T1.a=T2.a)
for xml auto

Для краткости Column1 обозван "a", Column2 - "b" Column3 - "c"

Дмитрий
...
Рейтинг: 0 / 0
10.08.2002, 00:27:06
    #32042305
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйсто с выводом в XML
Не буду настаивать, что этот вариант оптимальный, но на первый взгляд у меня так получается
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
set nocount on
create table #t(column1 varchar( 10 ), column2 varchar( 10 ), column3 varchar( 10 ))

insert #t values('a1', 'b1', 'c1' )
insert #t values('a1', 'b1', 'c2' )
insert #t values('a1', 'b2', 'c3' )


SELECT  1             AS tag, 
       NULL         AS parent,
column1	as [column1! 1 !name],
NULL as [column2! 2 !name],
NULL as [column3! 3 !name]
from (select distinct column1 from #t) AS a
union all
select  2 , 1 , a.column1, b.column2, NULL
from (select distinct column1 from #t) AS a, (select distinct column1, column2 from #t) AS b
where a.column1 = b.column1
union all
select  3 , 2 ,a.column1, a.column2, b.column3
from (select distinct column1, column2 from #t) AS a, (select distinct column1, column2, column3 from #t) AS b
where a.column1 = b.column1 and a.column2 = b.column2
order by [column1! 1 !name], [column2! 2 !name], [column3! 3 !name]
for xml explicit

drop table #t
...
Рейтинг: 0 / 0
10.08.2002, 00:43:51
    #32042306
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйсто с выводом в XML
Да, Dimos безусловно предложил более правильный вариант
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
set nocount on
create table #t(column1 varchar( 10 ), column2 varchar( 10 ), column3 varchar( 10 ))

insert #t values('a1', 'b1', 'c1' )
insert #t values('a1', 'b1', 'c2' )
insert #t values('a1', 'b2', 'c3' )

select distinct column1.column1 as name, 
column2.column2 as name, column3.column3 as name
from 
((#t column3 left outer join #t column2 on column2.column2=column3.column2 and column2.column1=column3.column1) 
left outer join #t column1 on column1.column1=column2.column1) 
for xml auto

drop table #t
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите пожалуйсто с выводом в XML / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]