私はいくつかのXMLを取得しようとしていますが、自分の構造が私がチェックした学習の例に合わないように見えますが、select ... to xml.nodesを実行できません。 ABA(= 777)のメジャーID(aba、cbp)と値denのすべての値を取得する方法 tsql for xml、complex xml
これが私の最初のアプローチであり、それは以下の
SELECT xmldata
, n0.b.value('(@type)[1]', 'varchar(100)') as c1 --< 'GGM'
, n.b.value('(@id)[1]', 'varchar(100)') as m1 --< ABA
, n.b.value('(@id)[2]', 'varchar(100)') as m2 --< CBP
FROM z
CROSS APPLY z.xmldata.nodes('//submission/component/audit/data/measures/measure') AS n(b)
CROSS APPLY z.xmldata.nodes('//submission/component') AS n0(b)
試験荷重では動作しません:
DECLARE @MyXML XML;
SET @MyXML =
('<?xml version="1.0" encoding="UTF-8"?>
<submission vendor-id="9999" guid="1234-5678-4578-4784" xmlns="http://www.ncqa.org/ns/2006/idss/hedis">
<metadata>
<version>41</version>
<timestamp/>
<sub-id>1434588</sub-id>
<org-id/>
<org-name/>
<product-line>NC15</product-line>
<reporting-product/>
<special-project/>
<special-area/>
<hcfa-contract/>
<hcfa-area/>
<year-end-date>12/31/2016</year-end-date>
<audit>true</audit>
</metadata>
<component type="GGM">
<audit>
<measures>
<measure id="aba">
<reported>true</reported>
<benefit>true</benefit>
<data-elements>
<data-element id="rate">
<audit-designation>false</audit-designation>
<comment/>
</data-element>
</data-elements>
</measure>
<measure id="cbp">
<reported>true</reported>
<benefit>true</benefit>
<data-elements>
<data-element id="rate">
<audit-designation>false</audit-designation>
<comment/>
</data-element>
</data-elements>
</measure>
</measures>
<data>
<measures>
<measure id="aba" measure-version-id="44444-222222-33333">
<data-elements>
<data-element id="den">
<value>777</value>
</data-element>
<data-element id="elignu">
<value>48</value>
</data-element>
<data-element id="eligpop">
<value>777</value>
</data-element>
</data-elements>
</measure>
<measure id="cbp" measure-version-id="11111-222222-33333">
<data-elements>
<data-element id="admexc">
<value>0</value>
</data-element>
<data-element id="collmeth">
<value>H</value>
</data-element>
<data-element id="dentot">
<value>355</value>
</data-element>
<data-element id="eligtot">
<value>123</value>
</data-element>
<data-element id="empexc">
<value>0</value>
</data-element>
</data-elements>
</measure>
</measures>
</data>
</audit>
</component>
</submission>')
SELECT @MyXML as xmldata into z;
*テストロードのためのThx!私の側から+1 – Shnugo