以下の 3 つの XML ファイルがあり、この 3 つのドキュメントをすべて結合して、集計関数を実行し、特定の分類名に対して行われた販売数を調べたいと考えています。しかし、私が書いたコードには問題があるようです。3 つのドキュメントに対して集計機能を実行する方法を教えてください。
ClassDescription.XML
<classification name="Electronic">
<Description>electronic devices that requires electric</Description>
</classification>
<classification name="SoftToy">
<Description>Fluffy toys that kids like</Description>
</classification>
ToyClassification.XML
<toy toyID="11">
<name>Doll</name>
<classification>SoftToy</classification>
</toy>
<toy toyID="22">
<name>Xbox</name>
<classification>Electronic</classification>
</toy>
<toy toyID="33">
<name>PS3</name>
<classification>Electronic</classification>
</toy>
ToySale.XML
<toySale companyID="1" toyID="11" >
<amount>15</amount>
</toySale>
<toySale companyID="3" toyID="11" >
<amount>12</amount>
</toySale>
<toySale companyID="1" toyID="22" >
<amount>3</amount>
</toySale>
<toySale companyID="2" toyID="33" >
<amount>7</amount>
</toySale>
<ClassList>
<classification name="SoftToy">
<totalSale>4</totalSale>
</classification>
<classification name="Electronic">
<totalSale>3</totalSale>
</classification>
</ClassList>
以下は私が持っているコードですが、機能していないようです.これが機能するための正しいxqueryは何ですか?
for $class in (ClassDescription.XML)//classification/@name
for $toyClass in (ToyClassification.XML)//toy/@toyID
for $sale in (ToySale.XML)//toySale/@toyID
let $sum := (ToySale.XML)//toySale[@toyID = $toyClass]
where $sale=$toyClass and $class=$toyClass/../name
order by sum($sum/amount)
return <ClassList>{$class}</ClassList>