首页 > 解决方案 > XQuery - 对具有另一个特定属性值的所有元素的属性求和

问题描述

我需要为每个产品“类型”添加余额,这样剩下的就是一个元素,其中产品“类型”的总余额

这就是我所拥有的

let $input := <products>
                <prod balance="20000" code="car"/>
                <prod balance="50000" code="house"/>
                <prod balance="50000" code="car"/>
              </products>         
       let $sum_val_car :=  sum($input//prod/@balance )
       let $count_val_car := count($input//prod[@code='car'])
       let $sum_val_house :=  sum($input//prod/@balance)
       let $count_val_house := count($input//prod[@code='house'])
       
       
  return  <products>
            <prod count="{$count_val_car}" balance="{$sum_val_car}" code="car"/>
            <prod count="{$count_val_house}" balance="{$sum_val_house}" code="house"/>
         </products>

我需要修改$sum_val_car$sum_val_house以某种方式仅将具有codeeqaul 属性的元素与相应的值相加。有没有办法做到这一点?

标签: xquery-3.0

解决方案


$input//prod[@code='house']/@balance

balance从带有='house' 的prod元素中选择code

解决方案是

let $sum_val_house :=  sum($input//prod[@code='house']/@balance)

推荐阅读