XML элементы из SQL - PullRequest
       0

XML элементы из SQL

0 голосов
/ 25 июня 2018

Первая запись TSQL для вывода XML.

Ниже приведен формат XML, который я пытаюсь вывести. enter image description here

Я начал собирать код ниже -

SELECT              1 as 'PropRecordType'
                    ,a.AssetReference as 'PropCliReference'



FROM  Asset a
LEFT JOIN AssetType at on at.AssetTypeId = a.AssetTypeID



WHERE at.Letable = 1

FOR XML PATH('Property'), 
ROOT ('UESDPropertyDetails');

Так что мне удобно получать список элементов, добавленных в разделе «Свойства». Это как получить часть данных RiskAssessementList в разделе свойств?

1 Ответ

0 голосов
/ 28 июня 2018

Что я здесь делаю, так это ваша работа (создание тестового сценария).Попробуйте:

DECLARE @propTable TABLE(ID INT, eMail VARCHAR(100),ward VARCHAR(100));
INSERT INTO @propTable VALUES(1,'Some@email.com','blah');

DECLARE @AssessmentTable TABLE(ID INT, PropID INT /*fk*/, Code VARCHAR(100),Descr VARCHAR(100));
INSERT INTO @AssessmentTable VALUES(1,1,'GPO','')
                                  ,(2,1,'ASB','001'); 

- запрос

SELECT pt.eMail AS PropEMail
      ,pt.ward AS PropWard
      ,(
        SELECT at.Code AS AssessmentCode
              ,at.Descr AS AssessmentDesc
        FROM @AssessmentTable at
        WHERE at.PropID=pt.ID
        FOR XML PATH('RiskAssessment'),ROOT('RiskAssessmentList'),TYPE
       )
FROM @propTable pt
FOR XML PATH('Property'),ROOT('UESDPropertyDetail');

Результат

<UESDPropertyDetail>
  <Property>
    <PropEMail>Some@email.com</PropEMail>
    <PropWard>blah</PropWard>
    <RiskAssessmentList>
      <RiskAssessment>
        <AssessmentCode>GPO</AssessmentCode>
        <AssessmentDesc />
      </RiskAssessment>
      <RiskAssessment>
        <AssessmentCode>ASB</AssessmentCode>
        <AssessmentDesc>001</AssessmentDesc>
      </RiskAssessment>
    </RiskAssessmentList>
  </Property>
</UESDPropertyDetail>                                  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...