#xquery-3.0
#xquery-3.0
Вопрос:
Мне нужно добавить баланс для каждого типа продукта, чтобы остался один элемент с общим балансом для типа продукта
Это то, что у меня есть
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
каким-то образом суммировать только элементы с code
атрибутом eqaul до соответствующего значения. Есть ли способ сделать это?
Ответ №1:
$input//prod[@code='house']/@balance
Выбирается balance
из prod
элементов с code
=’house’
Решение тогда
let $sum_val_house := sum($input//prod[@code='house']/@balance)