これの何が問題なのですか?私のタスクは次のとおりです。XML ファイルがあり、Mick ではないすべての都市を表示する必要があります。!!! 都市はユニークではありません。たとえば、Mick-London、Tom-London、Charles-Paris があります。正解はパリのみ。
クエリは SQL Server 2008 用です。ご協力ありがとうございます。
これは XML です。
declare @x xml
set @x = '<database>
<persons>
<person fio="Mick" id="1" />
<work city="London" size="450" />
<state>United Kingdom </state>
</persons>
<persons>
<person fio="Tom" id="8" />
<work city="London" size="500" />
<state>UK</state>
</persons>
<persons>
<person fio="Charles" id="9" />
<work city="Paris" size="450000" />
<state>Frace</state>
</persons>
<persons>
<person fio="Some_name1" id="10" />
<work city="Brussels" size="30000" />
<state>Belgium</state>
</persons>
<persons>
<person fio="Some_name2" id="11" />
<work city="Munich" size="30000" />
<state>Germany</state>
</persons>
</database>'
私の現在のスクリプトは次のとおりです。
select @x.query('//work[not(//person[@fio="Mick" and @city = this/../work/@city])]');