Я пытаюсь извлечь все Element_ID
значения для каждого из measure
. Хитрость здесь в том, что набор отличается для каждой меры, возможно ли это с T-SQL? У меня нет ссылки / схемы для этого xml.
Ниже приведены примеры данных, как видно для AWC
, имеют 5 элементов данных для ABA
10 +.
Желаемый выводдолжен выглядеть примерно так:
AWC collmeth A
AWC eligpop 30125
AWC myyear 2018
etc..
Спасибо всем.
Пробовал этот XQuery, но не смог
DECLARE @xml XML;
SET @xml = (SELECT col FROM #x)
SELECT doc.value ('(value/text/())[1]', 'nvarchar(max)') AS 'key'
FROM @xml.nodes('/submission/component/data/measures/measure/data-elements/data-element') AS ref(doc)
XQuery [value ()]: Синтаксисошибка около '(', ожидаемое выражение шага.
DECLARE @xml XML = '<?xml version="1.0" encoding="utf-8"?>
<submission xmlns="https://www.mscbs.gob.es" guid="122134566-3344556-4334455-12343456" vendor-id="111111">
<metadata>
<version>40</version>
<timestamp/>
<sub-id>12122018</sub-id>
<year-end-date>12/31/2017</year-end-date>
<audit>true</audit>
</metadata>
<component type="GS">
<audit>
<measures>
<measure id="awc"> <reported>true</reported> </measure>
<measure id="aba"> <reported>true</reported> </measure>
</measures>
</audit>
<data>
<measures>
<measure id="awc" measure-version-id ="AWC_Version_Test">
<data-elements>
<data-element id="collmeth"> <value>A</value> </data-element>
<data-element id="eligpop"> <value>30125</value> </data-element>
<data-element id="myear"> <value>2018</value> </data-element>
<data-element id="nuadm"> <value>12925</value> </data-element>
<data-element id="nusup"> <value>0</value> </data-element>
</data-elements>
</measure>
<measure id="aba" measure-version-id ="ABA_Version_TEST">
<data-elements>
<data-element id="admexc"> <value>0</value> </data-element>
<data-element id="collmeth"> <value>H</value> </data-element>
<data-element id="den"> <value>147</value> </data-element>
<data-element id="elignu"> <value>11829</value> </data-element>
<data-element id="eligpop"> <value>21118</value> </data-element>
<data-element id="empexc"> <value>0</value> </data-element>
<data-element id="mrssnu"> <value>99</value> </data-element>
<data-element id="medexc"> <value>0</value> </data-element>
<data-element id="mrssize"> <value>147</value> </data-element>
<data-element id="myear"> <value>2018</value> </data-element>
<data-element id="nuadm"> <value>81</value> </data-element>
<data-element id="numed"> <value>36</value> </data-element>
<data-element id="nusup"> <value>18</value> </data-element>
<data-element id="overrate"> <value>0.02</value> </data-element>
<data-element id="subadded"> <value>0</value> </data-element>
<data-element id="veexc"> <value>0</value> </data-element>
</data-elements>
</measure>
</measures>
</data>
</component>
</submission>
'
SELECT @xml col INTO #x
SELECT * FROM #x