выберите для XML, гнездо по порядку по полям - PullRequest
1 голос
/ 12 февраля 2010
SELECT 
      [Represantative] 
      ,[log_date] 
      ,[customer] 
      ,[type] 
      ,[log_type] 
      ,[zone_code] 
  FROM [dbo].[ilc_ziyaret_plani_gun_degisiklikleri_v] gun_logu
order by Represantative, log_date, customer
for xml path ,  root('log_details')

Мне нужен вложенный xml, как в предложении order by: я пытался использовать предложение для xml path, но он не делал вложения, он просто формировал документ xml Представительство, лог_дата, заказчик

<log_details>
 <represantative name="john doe">
  <log_date date="2010-02-10">
   <customer c="xyz">
    <op>
      <log_type="add"/>
      <zone_code="a1"/>
    </op>
    <op>
      <log_type="add"/>
      <zone_code="b1"/>
    </op>
   <customer/>
   <customer> same as above </customer>
  <log_date>same for next date</log_date>

есть идеи, как это сделать

1 Ответ

0 голосов
/ 19 октября 2011

Форматирование XML в TSQL требует проб и ошибок

SELECT  
      [Represantative] 
      ,[log_date]  
      ,[customer]  "customer/@name"
      ,[type]  "customer/@type"
      ,[log_type] "customer/op/log_type" 
      ,[zone_code]  "customer/op/zone_code"
  from t1
order by Represantative, log_date, customer 
for xml path('log_detail') ,  root('log_details') 

возвращает этот вывод xml

<log_details>
  <log_detail>
    <Represantative>john doe</Represantative>
    <log_date>2010-02-10</log_date>
    <customer name="xyz" type="add">
      <op>
        <log_type>a1</log_type>
        <zone_code>b1</zone_code>
      </op>
    </customer>
  </log_detail>
</log_details>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...