|
Запрос for xml explicit
|
|||
---|---|---|---|
#18+
Дан запрос SELECT dbo.Headers.ordernumber, dbo.Headers.orderdate, dbo.Headers.deliveryaddress as address, dbo.Lines.linenumber, dbo.Lines.quantity, dbo.Lines.price, dbo.Lines.article as articlecode FROM dbo.Headers LEFT JOIN dbo.Lines ON dbo.Lines.ordernumber = dbo.Headers.ordernumber where dbo.Lines.quantity = 2 and dbo.Lines.price = 2.20 Данные нужно представить в формате: <orders> <order> <header> <ordernumber>1</ordernumber> <orderdate>DD.MM.YYYY</orderdate> <address>Адрес</address> </header> <lines> <line> <linenumber>1</linenumber> <article @quantity="2" @price="2.20">articlecode</article> </line> ... </lines> </order> ... </orders> Мои наработки: Select 1 as tag, NULL as parent, dbo.Headers.ordernumber as 'order!1!ordernumber!element', NULL as 'header!2!dbo.Headers.orderdate!element', NULL as 'header!2!dbo.Headers.deliveryaddress!element' from dbo.Headers unionall select 2 as tag, 2 as parent, header.dbo.Lines.ordernumber, linenumber, article from dbo.Lines where dbo.Lines.ordernumber = dbo.Headers.ordernumber and dbo.Lines.quantity = 2 and dbo.Lines.price = 2.20 order by 'order!1!ordernumber!element', 'header!2!dbo.Headers.orderdate!element', 'header!2!dbo.Headers.deliveryaddress!element' for xml explicit, TYPE, ROOT ('orders') Ошибка Сообщение 4104, уровень 16, состояние 1, строка 3 Не удалось привязать составной идентификатор "dbo.Headers.ordernumber". Помогите, пожалуйста, убрать ошибку ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 05:05 |
|
Запрос for xml explicit
|
|||
---|---|---|---|
#18+
Доработала запрос до уровня SELECT dbo.Headers.ordernumber AS 'header/ordernumber', orderdate AS 'header/orderdate', dbo.Headers.deliveryaddress AS 'header/address' FROM dbo.Headers UNION ALL SELECT dbo.Lines.linenumber AS 'lines/line/linenumber', dbo.Lines.quantity AS 'lines/line/quantity', dbo.Lines.price AS 'lines/line/price', dbo.Lines.article AS 'lines/line/articlecode' FROM dbo.Lines LEFT JOIN dbo.Headers ON dbo.Lines.ordernumber = dbo.Headers.ordernumber FOR XML PATH('order'), TYPE, ELEMENTS, ROOT('orders') Выдает ошибку Все запросы, объединенные с помощью операторов UNION, INTERSECT или EXCEPT, должны иметь одинаковое число выражений в целевых списках. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 07:12 |
|
Запрос for xml explicit
|
|||
---|---|---|---|
#18+
Как-то так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 10:07 |
|
Запрос for xml explicit
|
|||
---|---|---|---|
#18+
invm, Сообщение 156, уровень 15, состояние 1, строка 4 Неправильный синтаксис около ключевого слова "as". Сообщение 102, уровень 15, состояние 1, строка 10 Неправильный синтаксис около конструкции "dbo". ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 11:32 |
|
Запрос for xml explicit
|
|||
---|---|---|---|
#18+
Инна_B, Ну у вас же место ошибки подчекнуто. Могли бы и догадаться, что from пропущен. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 11:44 |
|
Запрос for xml explicit
|
|||
---|---|---|---|
#18+
Инна_B, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 11:45 |
|
Запрос for xml explicit
|
|||
---|---|---|---|
#18+
Massa52, спасибо, вы очень помогли. Я немного изменила select h.ordernumber as 'header/ordernumber', h.orderdate as 'header/orderdate', h.deliveryaddress as 'header/address', l.x as lines from dbo.Headers h cross apply ( select dbo.Lines.linenumber AS 'linenumber', dbo.Lines.quantity AS "article/@quantity", dbo.Lines.price AS "article/@price", dbo.Lines.article AS "article/@articlecode" from dbo.Lines where ordernumber = h.ordernumber and quantity = 2 and price = 2.20 for xml path('line'), type ) l(x) for xml path('order'), root('orders'), type; ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 12:31 |
|
Запрос for xml explicit
|
|||
---|---|---|---|
#18+
Инна_B, Это надо благодарить invm. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 12:47 |
|
|
start [/forum/topic.php?fid=46&msg=39976353&tid=1685919]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 19ms |
total: | 151ms |
0 / 0 |