Ich versuche, die Abteilungen mit den meisten Beschäftigten (und die Zahl der Mitarbeiter) in dem folgende XML-Dokument zu finden:findet die Abteilungen mit den meisten Beschäftigten in XQuery
<organization>
<departements>
<dept id="d1">
<name>accounting</name>
</dept>
<dept id="d2">
<name>marketing</name>
</dept>
<dept id="d3">
<name>production</name>
</dept>
</departements>
<employees>
<emp id="e1">
<name>...</name>
<activities>
<activity ref="d1"/>
</activities>
</emp>
<emp id="e2">
<name>...</name>
<activities>
<activity ref="d2"/>
<activity ref="d3"/>
</activities>
</emp>
<emp id="e3">
<name>...</name>
<activities>
<activity ref="d3"/>
</activities>
</emp>
<emp id="e4">
<name>...</name>
<activities>
<activity ref="d2"/>
</activities>
</emp>
</employees>
</organization>
Hier ist, was ich versucht habe:
(for $dept in doc('emp_dept.xml') //dept
let $nbr := count(doc('emp_dept.xml')//activity[@ref = $dept/@id])
order by $nbr descending
return $dept) [1]
die obige Abfrage gibt die folgende Ausgabe:
<dept id="d2">
<name>marketing</name>
</dept>
ich möchte bekommen die folgende Ausgabe:
<dept id="d2">
<name>marketing</name>
<employees>2</employees>
</dept>
<dept id="d3">
<name>production</name>
<employees>2</employees>
</dept>
vielen Dank. es funktioniert wie ein Zauber. – user7233170