2017-12-08 3 views
-1

Ich habe eine Tabelle mit dem Namen dbo.XMLData und eine Spalte in der Tabelle mit dem Namen XMLValue, eine Probe Zeile in der Tabelle unten ist (im Grunde ist es ein XML-Wert)Wie SQL-Spalten aus einem xmlcolumn

<GENERIC_ROUGHDRAFT xmlns="http://xactware.com/generic_roughdraft.xsd" majorVersion="28" minorVersion="300" transactionId="001SPL8"> 
 
    <HEADER dateCreated="2015-01-08T20:26:28" /> 
 
    <COVERSHEET> 
 
    <ESTIMATE_INFO estimateName="OSCAR_MURPHY" insuredName="Oscar Murphy" priceList="KYLO8X_JAN15" laborEff="Restoration/Service/Remodel" claimNumber="KBR-182015-13:18:46 MST" policyNumber="KBR1467216" typeOfLoss="Collapse" causeOfLoss="collapse" deprMat="1" deprNonMat="1" deprTaxes="1" recipientsXNAddress="XA.ONLINE.TEST" rotationTrade="Re Key\Lock Change" carrierId="2210000" estimateType="Structural" /> 
 
    <ADDRESSES> 
 
     <ADDRESS type="Property" street="6467 N 7506 W" city="Louisville" state="KY" zip="40219" primary="1" /> 
 
     <ADDRESS type="Home" street="6467 N 7506 W" city="Louisville" state="KY" zip="40219" /> 
 
    </ADDRESSES> 
 
    <PHONES> 
 
     <PHONE type="Home" primary="1" phone="(800) 555-5765" /> 
 
     <PHONE type="Business" phone="(801) 555-2021" /> 
 
     <PHONE type="Cellular" phone="(808) 555-0202" /> 
 
    </PHONES> 
 
    <CONTACTS> 
 
     <CONTACT type="ClaimRep" name="John Deeter"> 
 
     <ADDRESSES> 
 
      <ADDRESS type="Business" street="100 N 100 E" city="Orem" state="UT" zip="84062" primary="1" /> 
 
     </ADDRESSES> 
 
     <PHONES> 
 
      <PHONE primary="1" type="Business" phone="555-555-5554" /> 
 
     </PHONES> 
 
     </CONTACT> 
 
     <CONTACT type="Estimator" name="John Deeter"> 
 
     <ADDRESSES> 
 
      <ADDRESS type="Business" street="100 N 100 E" city="Orem" state="UT" zip="84062" primary="1" /> 
 
     </ADDRESSES> 
 
     <PHONES> 
 
      <PHONE primary="1" type="Business" phone="555-555-5554" /> 
 
     </PHONES> 
 
     </CONTACT> 
 
    </CONTACTS> 
 
    <DATES loss="2015-01-07" inspected="2015-01-08T05:00:00Z" completed="2015-01-08T20:26:26Z" received="2015-01-08T20:18:00Z" entered="2015-01-08T20:22:00Z" contacted="2015-01-08T05:00:00Z" /> 
 
    </COVERSHEET> 
 
    <COVERAGES> 
 
    <COVERAGE deductible="500" coverageName="Building" coverageType="0" id="1"> 
 
     <SUMMARY> 
 
     <TOTALS lineItemTotal="7919.16" subtotal="8060.24" rcv="8060.24" acv="8060.24" deductible="500" fullDeduct="500" netClaim="7560.24"> 
 
      <SALES_TAXES> 
 
      <SALES_TAX desc="Material Sales Tax" amount="141.08" taxOP="OPonTax" /> 
 
      </SALES_TAXES> 
 
      <SIGNATURE estimator="John Deeter" /> 
 
     </TOTALS> 
 
     </SUMMARY> 
 
    </COVERAGE> 
 
    </COVERAGES> 
 
    <RECAP_TAX_OP> 
 
    <TAXES> 
 
     <TAX_DETAIL taxNum="1" rate="6" desc="Material Sales Tax" amount="141.08" /> 
 
     <TAX_DETAIL taxNum="2" rate="6" desc="Storage Tax" /> 
 
    </TAXES> 
 
    <LINE_ITEMS> 
 
     <TAXES> 
 
     <TAX_AMOUNT taxNum="1" amount="141.08" /> 
 
     </TAXES> 
 
    </LINE_ITEMS> 
 
    </RECAP_TAX_OP> 
 
    <LINE_ITEM_DETAIL total="7919.16"> 
 
    <GROUP desc="OSCAR_MURPHY" total="7919.16" acvTotal="8060.24" rcvTotal="8060.24" tax="141.08"> 
 
     <GROUPS> 
 
     <GROUP desc="Main Level" total="7888.97" acvTotal="8030.05" rcvTotal="8030.05" tax="141.08"> 
 
      <ITEMS total="6394.83"> 
 
      <ITEM type="I" lineNum="1" cat="FRM" sel="IJ9" act="&amp;" desc="I-joist - 9 1/2&quot; deep - 1 3/4&quot; flange" calc="164.67" qty="164.67" unit="LF" coverageName="Building" remove="0.76" replace="3.19" total="650.45" acv="650.45" recoverable="1" tax="19.27" acvTotal="669.72" rcvTotal="669.72" isPartOfInitSettle="1" laborTotal="329.34" laborBase="144.91" laborBurden="85.63" laborMarkup="98.8" laborHours="8.42" material="321.11" containsBSCDontApply="1"> 
 
       <ITEM_ACTS> 
 
       <ITEM_ACT act="-" labUnit="0.76" acvTotal="0.76" rcvTotal="0.76" trade="DMO" /> 
 
       <ITEM_ACT act="+" labUnit="1.24" matUnit="1.95" tax="0.12" acvTotal="3.31" rcvTotal="3.31" trade="CARP-FRM" /> 
 
       </ITEM_ACTS> 
 
      </ITEM> 
 
      <ITEM type="I" lineNum="3" cat="FRM" sel="SHW3/4T" act="&amp;" desc="Sheathing - OSB - 3/4&quot; - tongue and groove" calc="192" qty="192" unit="SF" coverageName="Building" remove="0.91" replace="1.47" total="456.96" acv="456.96" recoverable="1" tax="8.29" acvTotal="465.25" rcvTotal="465.25" isPartOfInitSettle="1" laborTotal="318.72" laborBase="140.16" laborBurden="80.64" laborMarkup="97.92" laborHours="8.46" material="138.24" containsBSCDontApply="1"> 
 
       <ITEM_ACTS> 
 
       <ITEM_ACT act="-" labUnit="0.91" acvTotal="0.91" rcvTotal="0.91" trade="DMO" /> 
 
       <ITEM_ACT act="+" labUnit="0.75" matUnit="0.72" tax="0.04" acvTotal="1.51" rcvTotal="1.51" trade="CARP-FRM" /> 
 
       </ITEM_ACTS> 
 
      </ITEM> 
 
      <ITEM type="I" lineNum="4" cat="FRM" sel="DBP6" act="&amp;" desc="Drilled bottom plate - 2&quot; x 6&quot; treated lumber" calc="50.67" qty="50.67" unit="LF" coverageName="Building" remove="3.57" replace="2.36" total="300.47" acv="300.47" recoverable="1" tax="3.1" acvTotal="303.57" rcvTotal="303.57" isPartOfInitSettle="1" laborTotal="248.79" laborBase="107.42" laborBurden="62.32" laborMarkup="79.05" laborHours="6.88" material="51.68" containsBSCDontApply="1"> 
 
       <ITEM_ACTS> 
 
       <ITEM_ACT act="-" labUnit="3.57" acvTotal="3.57" rcvTotal="3.57" trade="DMO" /> 
 
       <ITEM_ACT act="+" labUnit="1.34" matUnit="1.02" tax="0.06" acvTotal="2.42" rcvTotal="2.42" trade="CARP-FRM" /> 
 
       </ITEM_ACTS> 
 
      </ITEM> 
 
      <ITEM type="I" lineNum="5" cat="CNC" sel="FTG-" act="&amp;" desc="Footings - labor and materials" calc="2.54" qty="2.54" unit="CY" coverageName="Building" remove="106.07" replace="270.31" total="956.01" acv="956.01" recoverable="1" tax="15.76" acvTotal="971.77" rcvTotal="971.77" isPartOfInitSettle="1" laborTotal="626.82" laborBase="209.96" laborBurden="113.79" laborMarkup="303.07" laborHours="13.14" material="262.74" equipment="66.45" containsBSCDontApply="1"> 
 
       <ITEM_ACTS> 
 
       <ITEM_ACT act="-" labUnit="88.87" equUnit="17.2" acvTotal="106.07" rcvTotal="106.07" trade="DMO" /> 
 
       <ITEM_ACT act="+" labUnit="157.91" matUnit="103.44" equUnit="8.96" tax="6.21" acvTotal="276.52" rcvTotal="276.52" trade="CNC" /> 
 
       </ITEM_ACTS> 
 
      </ITEM> 
 
      <ITEM type="I" lineNum="7" cat="CNC" sel="RBJ42" act="+" desc="Steel rebar - j-bar - #4, 2' 6&quot;" calc="48" qty="48" unit="EA" coverageName="Building" replace="2.48" total="119.04" acv="119.04" recoverable="1" tax="2.48" acvTotal="121.52" rcvTotal="121.52" isPartOfInitSettle="1" laborTotal="77.76" laborBase="22.08" laborBurden="11.52" laborMarkup="44.16" laborHours="1.25" material="41.28" containsBSCDontApply="1"> 
 
       <ITEM_ACTS> 
 
       <ITEM_ACT act="+" labUnit="1.62" matUnit="0.86" trade="CNC" /> 
 
       </ITEM_ACTS> 
 
      </ITEM> 
 
      <ITEM type="I" lineNum="8" cat="CNC" sel="RB4" act="&amp;" desc="Steel rebar - #4 (1/2&quot;)" calc="106.17" qty="106.17" unit="LF" coverageName="Building" remove="0.99" replace="0.92" total="202.79" acv="202.79" recoverable="1" tax="2.87" acvTotal="205.66" rcvTotal="205.66" isPartOfInitSettle="1" laborTotal="155.01" laborBase="58.39" laborBurden="32.91" laborMarkup="63.71" laborHours="3.88" material="47.78" containsBSCDontApply="1"> 
 
       <ITEM_ACTS> 
 
       <ITEM_ACT act="-" labUnit="0.99" acvTotal="0.99" rcvTotal="0.99" trade="DMO" /> 
 
       <ITEM_ACT act="+" labUnit="0.47" matUnit="0.45" tax="0.03" acvTotal="0.95" rcvTotal="0.95" trade="CNC" /> 
 
       </ITEM_ACTS> 
 
      </ITEM> 
 
      <ITEM type="I" lineNum="9" cat="CNC" sel="FW-" act="&amp;" desc="Concrete wall - labor &amp; materials" calc="4.87" qty="4.87" unit="CY" coverageName="Building" remove="184.02" replace="235.54" total="2043.26" acv="2043.26" recoverable="1" tax="29.73" acvTotal="2072.99" rcvTotal="2072.99" isPartOfInitSettle="1" laborTotal="1361.8" laborBase="493.33" laborBurden="272.38" laborMarkup="596.09" laborHours="32.04" material="495.57" equipment="185.89" containsBSCDontApply="1"> 
 
       <ITEM_ACTS> 
 
       <ITEM_ACT act="-" labUnit="154.23" equUnit="29.79" acvTotal="184.02" rcvTotal="184.02" trade="DMO" /> 
 
       <ITEM_ACT act="+" labUnit="125.4" matUnit="101.76" equUnit="8.38" tax="6.11" acvTotal="241.65" rcvTotal="241.65" trade="CNC" /> 
 
       </ITEM_ACTS> 
 
      </ITEM> 
 
      <ITEM type="I" lineNum="10" cat="CNC" sel="RB4" act="&amp;" desc="Steel rebar - #4 (1/2&quot;)" calc="872.17" qty="872.17" unit="LF" coverageName="Building" remove="0.99" replace="0.92" total="1665.85" acv="1665.85" recoverable="1" tax="23.55" acvTotal="1689.4" rcvTotal="1689.4" isPartOfInitSettle="1" laborTotal="1273.37" laborBase="479.69" laborBurden="270.37" laborMarkup="523.31" laborHours="31.91" material="392.48" containsBSCDontApply="1"> 
 
       <ITEM_ACTS> 
 
       <ITEM_ACT act="-" labUnit="0.99" acvTotal="0.99" rcvTotal="0.99" trade="DMO" /> 
 
       <ITEM_ACT act="+" labUnit="0.47" matUnit="0.45" tax="0.03" acvTotal="0.95" rcvTotal="0.95" trade="CNC" /> 
 
       </ITEM_ACTS> 
 
      </ITEM> 
 
      </ITEMS> 
 
      <GROUPS> 
 
      <GROUP desc="Room1" total="1494.14" acvTotal="1530.17" rcvTotal="1530.17" tax="36.03"> 
 
       <ROOM_INFO sketchCeiling="8'" /> 
 
       <ROOM_DIM_VARS sfWalls="384" sfCeiling="144" sfWallsCeiling="528" sfFloor="144" syFloor="16" lfFloorPerim="48" lfCeilingPerim="48" /> 
 
       <ITEMS total="1494.14"> 
 
       <ITEM type="I" lineNum="15" cat="FCC" sel="AV" act="-" desc="Carpet" calc="F" qty="144" unit="SF" coverageName="Building" remove="0.19" total="27.36" acv="27.36" recoverable="1" acvTotal="27.36" rcvTotal="27.36" isPartOfInitSettle="1" laborTotal="27.36" laborBase="11.52" laborBurden="7.2" laborMarkup="8.64" laborHours="0.78" containsBSCDontApply="1"> 
 
        <ITEM_ACTS> 
 
        <ITEM_ACT act="-" labUnit="0.19" trade="DMO" /> 
 
        </ITEM_ACTS> 
 
       </ITEM> 
 
       <ITEM type="I" lineNum="13" cat="FCC" sel="AV" act="+" desc="Carpet" calc="(F)*1.15" qty="165.6" unit="SF" coverageName="Building" replace="2.64" total="437.18" acv="437.18" recoverable="1" tax="21.46" acvTotal="458.64" rcvTotal="458.64" isPartOfInitSettle="1" laborTotal="69.55" laborBase="29.81" laborBurden="14.9" laborMarkup="24.84" laborHours="1.6" material="357.7" equipment="9.93" containsBSCDontApply="1"> 
 
        <ITEM_ACTS> 
 
        <ITEM_ACT act="+" labUnit="0.42" matUnit="2.16" equUnit="0.06" trade="FLR" /> 
 
        </ITEM_ACTS> 
 
       </ITEM> 
 
       <ITEM type="N"> 
 
        <NOTE>15 % waste added for Carpet.</NOTE> 
 
       </ITEM> 
 
       <ITEM type="I" lineNum="11" cat="DRY" sel="1/2++" act="&amp;" desc="1/2&quot; drywall - hung, taped, with smooth wall finish" calc="WC" qty="528" unit="SF" coverageName="Building" remove="0.28" replace="1.67" total="1029.6" acv="1029.6" recoverable="1" tax="14.57" acvTotal="1044.17" rcvTotal="1044.17" isPartOfInitSettle="1" laborTotal="786.72" laborBase="343.2" laborBurden="179.52" laborMarkup="264" laborHours="19.26" material="242.88" containsBSCDontApply="1"> 
 
        <ITEM_ACTS> 
 
        <ITEM_ACT act="-" labUnit="0.28" acvTotal="0.28" rcvTotal="0.28" trade="DMO" /> 
 
        <ITEM_ACT act="+" labUnit="1.21" matUnit="0.46" tax="0.03" acvTotal="1.7" rcvTotal="1.7" trade="DRY" /> 
 
        </ITEM_ACTS> 
 
       </ITEM> 
 
       </ITEMS> 
 
      </GROUP> 
 
      </GROUPS> 
 
     </GROUP> 
 
     <GROUP desc="Labor Minimums Applied" total="30.19" acvTotal="30.19" rcvTotal="30.19"> 
 
      <ITEMS total="30.19"> 
 
      <ITEM type="I" lineNum="14" cat="FCC" sel="MN-A" act="+" desc="Carpet labor minimum" calc="1" qty="1" unit="EA" coverageName="Building" replace="30.19" total="30.19" acv="30.19" recoverable="1" acvTotal="30.19" rcvTotal="30.19" isPartOfInitSettle="0" laborTotal="30.19" laborBase="30.19"> 
 
       <ITEM_ACTS> 
 
       <ITEM_ACT act="+" labUnit="30.19" /> 
 
       </ITEM_ACTS> 
 
      </ITEM> 
 
      </ITEMS> 
 
     </GROUP> 
 
     </GROUPS> 
 
     <AREA_DIM_VARS sfWalls="384" sfCeiling="144" sfWallsCeiling="528" sfFloor="144" syFloor="16" lfFloorPerim="48" lfCeilingPerim="48" sfSkFloor="144" sfSkTotalFloor="160.44" sfSkIntWall="384" sfSkExtWall="456" lfSkExtWallPerim="50.67" /> 
 
    </GROUP> 
 
    </LINE_ITEM_DETAIL> 
 
    <RECAP_BY_ROOM total="7919.16"> 
 
    <RECAP_GROUP desc="OSCAR_MURPHY" subtotal="7919.16" subtotalPercentage="100"> 
 
     <RECAP_GROUPS> 
 
     <RECAP_GROUP desc="Main Level" items="6394.83" itemsPercentage="80.75" subtotal="7888.97" subtotalPercentage="99.62"> 
 
      <RECAP_GROUPS> 
 
      <RECAP_GROUP desc="Room1" items="1494.14" itemsPercentage="18.87" /> 
 
      </RECAP_GROUPS> 
 
     </RECAP_GROUP> 
 
     <RECAP_GROUP desc="Labor Minimums Applied" items="30.19" itemsPercentage="0.38" /> 
 
     </RECAP_GROUPS> 
 
    </RECAP_GROUP> 
 
    </RECAP_BY_ROOM> 
 
    <RECAP_BY_CATEGORY subtotalRCV="8060.24"> 
 
    <OP_ITEMS subtotalRCV="7919.16" subtotalPercentage="98.25"> 
 
     <CATEGORY desc="GENERAL DEMOLITION" rcv="2790.12" percentage="34.62" /> 
 
     <CATEGORY desc="CONCRETE &amp; ASPHALT" rcv="2852.79" percentage="35.39" /> 
 
     <CATEGORY desc="DRYWALL" rcv="881.76" percentage="10.94" /> 
 
     <CATEGORY desc="FLOOR COVERING - CARPET" rcv="467.37" percentage="5.8" /> 
 
     <CATEGORY desc="FRAMING &amp; ROUGH CARPENTRY" rcv="927.12" percentage="11.5" /> 
 
    </OP_ITEMS> 
 
    <SALES_TAXES> 
 
     <SALES_TAX desc="Material Sales Tax" percentage="1.75" rcv="141.08" /> 
 
    </SALES_TAXES> 
 
    </RECAP_BY_CATEGORY> 
 
</GENERIC_ROUGHDRAFT>
herzuzuleiten

Jetzt möchte ich einige der Daten aus dieser XML bekommen, wie ich brauche, um eine Abfrage zu haben, die mir die folgenden Daten zurückgeben kann

dateCreated = 2015-01-08T20:26:28
estimateName = OSCAR_MURPHY
PHONE type = Business ContactName = JohnDeeter

Kann jemand mir bitte mit einer Abfrage helfen, diese Spalten vom XML zu erhalten, benötige ich alle Spalten von diesem XML, aber wenn mir jemand mit ein paar helfen kann, kann ich es benutzen und alles ableiten.

Vielen Dank im Voraus an alle und bitte lassen Sie mich wissen, wenn Sie noch etwas brauchen.

+0

Bitte markieren Sie Ihre Frage mit den tatsächlichen RDBMS (Anbieter und Version) XML ist sehr produktspezifisch! Und reduzieren Sie bitte das angegebene XML auf ein Minimum, um die Prinzipien zu zeigen. Darüber hinaus ist es sehr geschätzt, einige eigene Anstrengungen zu zeigen. Dies sagt uns oft mehr als Ihre Erklärungen :-) – Shnugo

+0

Hallo Shnugo, Danke für die Antwort der Grund, warum ich ganze XML gab, war, weil ich einige Google-Beispiele gefunden habe, die gut mit anderen XML funktionieren, die ich verwendet habe, aber das scheint ein bisschen seltsam und es funktioniert nicht zum Beispiel, wie wenn ich die folgende Abfrage benutze, hoffe ich, den majorversion Wert zu erhalten, der in der ersten Reihe des XML ist, aber sein nicht SELECT Wert = X.XMLValue.value ('(/ GENERIC_ROUGHDRAFT/majorVersion // node ()) [1] ',' int ') VON dbo.XMLData X –

+0

Von Ihrem Code in Kommentar Ich nehme an, das ist SQL-Server. Getagged es entsprechend ... – Shnugo

Antwort

0

Diese XML ist keineswegs fremd, nur ein wenig komplexer ... Und es gibt Standard-Namespace ... Versuchen Sie folgendes:

DECLARE @dummyXMLData TABLE(XMLValue XML); 
INSERT INTO @dummyXMLData VALUES 
(N'<GENERIC_ROUGHDRAFT xmlns="http://xactware.com/generic_roughdraft.xsd" majorVersion="28" minorVersion="300" transactionId="001SPL8"> 
    <HEADER dateCreated="2015-01-08T20:26:28" /> 
    <COVERSHEET> 
    <ESTIMATE_INFO estimateName="OSCAR_MURPHY" insuredName="Oscar Murphy" priceList="KYLO8X_JAN15" laborEff="Restoration/Service/Remodel" claimNumber="KBR-182015-13:18:46 MST" policyNumber="KBR1467216" typeOfLoss="Collapse" causeOfLoss="collapse" deprMat="1" deprNonMat="1" deprTaxes="1" recipientsXNAddress="XA.ONLINE.TEST" rotationTrade="Re Key\Lock Change" carrierId="2210000" estimateType="Structural" /> 
<!--Deleted for brevity-->  
    <PHONES> 
     <PHONE type="Home" primary="1" phone="(800) 555-5765" /> 
     <PHONE type="Business" phone="(801) 555-2021" /> 
     <PHONE type="Cellular" phone="(808) 555-0202" /> 
    </PHONES> 
    <CONTACTS> 
     <CONTACT type="ClaimRep" name="John Deeter"> 
<!--Deleted for brevity-->  
     </CONTACT> 
     <CONTACT type="Estimator" name="John Deeter"> 
<!--Deleted for brevity-->  
     </CONTACT> 
    </CONTACTS> 
    <DATES loss="2015-01-07" inspected="2015-01-08T05:00:00Z" completed="2015-01-08T20:26:26Z" received="2015-01-08T20:18:00Z" entered="2015-01-08T20:22:00Z" contacted="2015-01-08T05:00:00Z" /> 
    </COVERSHEET> 
<!--Deleted for brevity-->  
</GENERIC_ROUGHDRAFT>'); 

WITH XMLNAMESPACES(DEFAULT 'http://xactware.com/generic_roughdraft.xsd') 
SELECT X.XMLValue.value(N'(/GENERIC_ROUGHDRAFT/HEADER/@dateCreated)[1]','datetime') AS DateCreated 
     ,X.XMLValue.value(N'(/GENERIC_ROUGHDRAFT/COVERSHEET/ESTIMATE_INFO/@estimateName)[1]','nvarchar(max)') AS EstimateName 
     ,X.XMLValue.value(N'(/GENERIC_ROUGHDRAFT/COVERSHEET/PHONES/PHONE[@type="Business"]/@phone)[1]','nvarchar(max)') AS BusinessPhone 
     ,X.XMLValue.query(N'/GENERIC_ROUGHDRAFT/COVERSHEET/CONTACTS/CONTACT') AS AllConctacts 
FROM @dummyXMLData X 
+0

Danke für die Antwort, es hat vollkommen gut funktioniert. Allerdings habe ich ein anderes Szenario, wo die XML-Daten so etwas wie Wie entferne ich nun diese Attachemnts, um zu unterscheiden, welches XML und Was ist PDF beim Laden? –

+0

@ JohnBryan, Hallo, ich bin froh, dass das dein Problem gelöst hat! Bitte vermeiden Sie * Follow-up * Fragen. SO lebt von einem Thema - einer Frage *. Eine neue Frage wird viele Leser anziehen. Und bitte versuche ein * Stand-Alone * Testszenario zu erstellen (wie meines oben). Dadurch erhalten Sie die schnellste und beste Antwort. Glückliche Kodierung! – Shnugo

Verwandte Themen