|
FOR XML EXPLICIT
#34010257
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
|
|
|
|
Есть sql-запрос, представляющий данные в формате XML:
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
select
1 as Tag,
NULL as Parent,
isnull(cast([[Отправитель]].[Отправитель]].[MEMBER_CAPTION]]] as varchar), 'ВСЕГО') as [station! 1 !station],
Cast([[Груз]].[Груз1]].[MEMBER_CAPTION]]] as varchar) as [station! 1 !gruz!element],
isnull( [[Measures]].[Вагоны]]], 0 ) as [station! 1 !vagon!element],
[[Measures]].[Вагоны нрст]]] as [station! 1 !vagm],
Round (cast ([[Measures]].[Вес_т]]] as varchar), 0 ) as [station! 1 !ves] ,
Round (cast ([[Measures]].[Вес нрст]]] as varchar), 0 ) as [station! 1 !vesm],
IsNull(cast ([[Measures]].[План ваг]]] as varchar), 0 ) as [station! 1 !plan_v],
IsNull(cast ([[Measures]].[План тонн]]] as varchar), 0 ) as [station! 1 !plan_t]
from openrowset('MSOLAP.2','Provider=MSOLAP.2;Persist Security Info=True;User ID=sa;Data Source=http://10.80.50.17; Initial Catalog=KSARM;Client Cache Size=25;Auto Synch Period=10000' ,
'select {[Measures].[Вагоны], [Measures].[Вагоны нрст], [Measures].[Вес_т], [Measures].[Вес нрст], [Measures].[План тонн],[Measures].[План ваг]} on columns,
non empty (Filter([Отправитель].Members, ([Measures].[Вагоны нрст])>0) * Filter([Груз].[Груз1].Members, [Measures].[Вагоны нрст]>0))on rows
from [Погрузка]
where ([Дата].[Все Даты].[2006].[September].[21],[Станция погр].[Все станции].[ЧЕЛЯБ].[ЧЕЛЯБИНСКИЙ].[МЕТАЛЛУРГИЧЕСКАЯ])')
FOR XML EXPLICIT
В результате выполнения этого запроса, получается следующий XML-документ:
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
<?xml version="1.0" encoding="utf-8" ?>
- <root>
- <station station="ВСЕГО" vagm="5" vesm="67" plan_v="0" plan_t="0">
<gruz>Автомобили</gruz>
<vagon> 0 </vagon>
</station>
- <station station="ВСЕГО" vagm="317" ves="787" vesm="15448" plan_v="0" plan_t="0">
<gruz>Кокс</gruz>
<vagon> 17 </vagon>
</station>
- <station station="ВСЕГО" vagm="98" ves="71" vesm="4842" plan_v="0" plan_t="0">
<gruz>Лом черных металлов</gruz>
<vagon> 1 </vagon>
</station>
- <station station="ВСЕГО" vagm="7" vesm="99" plan_v="0" plan_t="0">
<gruz>Машины и оборудование</gruz>
<vagon> 0 </vagon>
</station>
- <station station="ВСЕГО" vagm="18" vesm="351" plan_v="0" plan_t="0">
<gruz>Металлоконструкции</gruz>
<vagon> 0 </vagon>
</station>
Мне нужно получить XML-файл в таком виде:
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
<?xml version="1.0" encoding="utf-8" ?>
- <root>
- <station station="ВСЕГО" >
<attr vagm="5" vesm="67" plan_v="0" plan_t="0">
<gruz>Автомобили</gruz>
<vagon> 0 </vagon> </attr>
<attr vagm="317" ves="787" vesm="15448" plan_v="0" plan_t="0">
<gruz>Кокс</gruz>
<vagon> 17 </vagon> </attr>
<attr vagm="98" ves="71" vesm="4842" plan_v="0" >
<gruz>Лом черных металлов</gruz>
<vagon> 1 </vagon> </attr>
<attr vagm="7" vesm="99" plan_v="0" plan_t="0">
<gruz>Машины и оборудование</gruz>
<vagon> 0 </vagon> </attr>
...................... и т.д. ..............
</station>
Как это сделать средствами sql?
|
|
|