2011-05-06 81 views
1

的數據這是我的XML看起來像:獲取祖先節點+的XQuery-SQL

<Product sequence_number="1" number="1543448904" id="S1" unit_number="1"> 

    <consumer_narrative name="GLENN,GREGORY" date_filed="02/13/2009"> 
     <message type="Consumer Comments">THE CONSUMER STATES THIS WAS NOT </message> 
     <message type="Consumer Comments">THE PRODUCT REQUESTED.</message> 
    </consumer_narrative></Product> <Product sequence_number="2" number="1543448905" id="S1" unit_number="1"> 

    <consumer_narrative name="JOHN,GORDON" date_filed="08/23/2009"> 
     <message type="Consumer Comments">THE CONSUMER STATES THAT</message> 
     <message type="Consumer Comments">WRONG PRODUCT WAS SENT.</message> 
    </consumer_narrative> </Product> 

我的查詢:

SELECT 

    tab.col.value('../@number', 'varchar(30)') [Claim Number], 
    tab.col.value('../@name', 'varchar(30)') [Name], 
    tab.col.value('../@date_filed', 'varchar(30)') [DateField], 
    tab.col.value('@type', 'varchar(50)') [Type], 
    tab.col.value('.', 'varchar(250)') [CustomerComments] 

FROM XMLTABLE AS B 
CROSS APPLY xmldocument.nodes('//Product/consumer_narrative/message') tab(col) 
WHERE B.XMLId = 123 

給我 「空」 的索賠數目。我應該用什麼來代替../@number來獲取索賠號。

回答

2

另一個 「../」

第一../只收了你的高達元素consumer_narrative

+0

@鄧肯感謝很多。這正是我正在尋找的。 – Gauranga 2011-05-06 22:37:53