Я был бы очень признателен за помощь. Я использую SQL FOR XML PATH, но у меня есть проблемы с узлами.
У меня простая таблица (ниже приведен сценарий для генерации)
voucher_number payment_number payment_date
---------------------------------------------------
D15 C15 2020-07-27
D16 C16 2020-07-25
Я бы хотел, чтобы XML выглядел так, посмотрите на уровень «объекта»:
<?xml version="1.0" encoding="UTF-8"?>
<objects>
<object>
<record>
<voucher_number>D15</voucher_number>
<payment_number>C15</payment_number>
<payment_date>2020-07-27</payment_date>
</record>
<record>
<voucher_number>D16</voucher_number>
<payment_number>C16</payment_number>
<payment_date>2020-07-25</payment_date>
</record>
</object>
</objects>
Но когда я запускаю этот скрипт
SELECT
[voucher_number] as [record/voucher_number]
,[payment_number] as [record/payment_number]
,[payment_date] as [record/payment_date]
FROM #t1
FOR XML PATH ('object'), ROOT('Objects')
, он выглядит так. ... посмотрите на уровень "объекта".
<?xml version="1.0" encoding="UTF-8"?>
<Objects>
<object>
<record>
<voucher_number>D15</voucher_number>
<payment_number>C15</payment_number>
<payment_date>2020-07-27</payment_date>
</record>
</object>
<object>
<record>
<voucher_number>D16</voucher_number>
<payment_number>C16</payment_number>
<payment_date>2020-07-25</payment_date>
</record>
</object>
</Objects>
Как мне изменить сценарий, чтобы он охватывал два дочерних узла «записи»?
Большое, большое спасибо заранее :)
--- Script to generate the test table ---
Create table #t1
(
[voucher_number] [nvarchar](50) NULL,
[payment_number] [nvarchar](50) NULL,
[payment_date] [date] NULL
)
INSERT #t1 ([voucher_number], [payment_number], [payment_date]) VALUES (N'D15', N'C15', CAST(N'2020-07-27' AS Date))
GO
INSERT #t1 ([voucher_number], [payment_number], [payment_date]) VALUES (N'D16', N'C16', CAST(N'2020-07-25' AS Date))