2017-11-09 4 views
1

私は5つの所有者と5台、それぞれの車を持って、私はその国(同じ車の所有者に表示できる)他の車の所有者に表示されないそれらの所有者を返す必要があります:質問を書く方法xquery?

<root> 
    <car> 
    <id>1</id> 
    <owner> 
      <name>George Smith</name> 
      <nation>USA</nation> 
    </owner> 
    <owner> 
      <name>Carolina Herre</name> 
      <nation>USA</nation> 
    </owner> 
    <owner> 
      <name>Martha Belar</name> 
      <nation>Denmark</nation> 
    </owner> 
    <owner> 
      <name>Fernando Izza</name> 
      <nation>Italy</nation> 
    </owner> 
    <owner> 
      <name>George Smith</name> 
      <nation>Italy</nation> 
    </owner> 
</car> 
<car> 
    <id>2</id> 
    <owner> 
      <name>George Gelar</name> 
      <nation>USA</nation> 
    </owner> 
    <owner> 
      <name>Gema Bio</name> 
      <nation>Spain</nation> 
    </owner> 
    <owner> 
      <name>Peter Vdf</name> 
      <nation>Denmark</nation> 
    </owner> 
    <owner> 
      <name>Felipe Rodriguez</name> 
      <nation>Denmark</nation> 
    </owner> 
    <owner> 
      <name>George Smith</name> 
      <nation>USA</nation> 
    </owner> 
</car> 
<car> 
... 
</car> 
<car> 
... 
</car> 
<car> 
... 
</car> 
</root> 

こと私はいくつかの車に表示され、その後、それらの国からであるそれらの所有者を取得しますが、私は知らないしていない国のリストを取得しようとしました

<owner> 
    <name>Fernando Izza</name> 
    <nation>Italy</nation> 
    <carID>1</carID> 
</owner> 
<owner> 
    <name>George Smith</name> 
    <nation>Italy</nation> 
    <carID>1</carID> 
</owner> 
<owner> 
    <name>Gema Bio</name> 
    <nation>Spain</nation> 
    <carID>2</carID> 
</owner> 

:出力は次のようになり、そのXML与えられた、ありますそれを得る方法。

+0

試してみましたか? XQueryを見せてください。 – dirkk

+0

ここに質問するのは本当に良いルールです。頼むな。アットオール。これまで – halfer

+0

申し訳ありません。私は、次のことを試して、1台の車にしか見えない車の所有者の国を得る。しかし、私はどのように継続しなければならないのか、この初心者が私を助けてくれるのか分かりません。doc( "cars.xml")の$ cのため// //$ nは個別値(doc( "cars.xml")) //車/所有者/国/テキスト()) LETの$ M:= $ C /所有者/国/テキスト() リターン 場合($ N = $ m)の後、 {$ nを}他 () – Leon

答えて

0

その後、ちょうど彼らの国でグループ所有者をして国民が複数の車の下に発生したかどうかを確認するために上向きに見ることができます:あなたは何を

for $owner in doc("cars.xml")//car/owner 
group by $nation := $owner/nation 
where count($owner/..) eq 1 
for $o in $owner 
return <owner>{ 
    $o/*, 
    <carID>{$o/../id/text()}</carID> 
}</owner> 
+0

あなたは私を救った、ありがとう!ありがとうございました! – Leon

関連する問題