Пытается получить общую сумму, заказанную в XQuery, но сталкивается с некоторыми проблемами.
Это OrderLine.xml
<?xml version="1.0" encoding="UTF-8" ?>
<dataroot>
<OrderLine>
<OrderNum>21608</OrderNum>
<PartNum>AT94</PartNum>
<NumOrdered>11</NumOrdered>
<QuotedPrice>21.95</QuotedPrice>
</OrderLine>
<OrderLine>
<OrderNum>21610</OrderNum>
<PartNum>DR93</PartNum>
<NumOrdered>1</NumOrdered>
<QuotedPrice>495.00</QuotedPrice>
</OrderLine>
<OrderLine>
<OrderNum>21610</OrderNum>
<PartNum>DW11</PartNum>
<NumOrdered>1</NumOrdered>
<QuotedPrice>399.99</QuotedPrice>
</OrderLine>
<OrderLine>
<OrderNum>21613</OrderNum>
<PartNum>KL62</PartNum>
<NumOrdered>4</NumOrdered>
<QuotedPrice>329.95</QuotedPrice>
</OrderLine>
<OrderLine>
<OrderNum>21614</OrderNum>
<PartNum>KT03</PartNum>
<NumOrdered>2</NumOrdered>
<QuotedPrice>595.00</QuotedPrice>
</OrderLine>
<OrderLine>
<OrderNum>21617</OrderNum>
<PartNum>BV06</PartNum>
<NumOrdered>2</NumOrdered>
<QuotedPrice>794.95</QuotedPrice>
</OrderLine>
<OrderLine>
<OrderNum>21617</OrderNum>
<PartNum>CD52</PartNum>
<NumOrdered>4</NumOrdered>
<QuotedPrice>150.00</QuotedPrice>
</OrderLine>
<OrderLine>
<OrderNum>21619</OrderNum>
<PartNum>DR93</PartNum>
<NumOrdered>1</NumOrdered>
<QuotedPrice>495.00</QuotedPrice>
</OrderLine>
<OrderLine>
<OrderNum>21623</OrderNum>
<PartNum>KV29</PartNum>
<NumOrdered>2</NumOrdered>
<QuotedPrice>1290.00</QuotedPrice>
</OrderLine>
</dataroot>
Мне нужно получить общую сумму за заказ. Это мой xquery:
<results>
{
for $ord in doc("../premiere/Orders.xml")//Orders,
$cus in doc("../premiere/Customer.xml")//Customer[CustomerNum = $ord/CustomerNum]
return
<row>
<order number="{ $ord/OrderNum }" />
<customer name="{ $cus/CustomerName }" />
{
let $ln := doc("../premiere/OrderLine.xml")//OrderLine[OrderNum = $ord/OrderNum]
where $ord/CustomerNum = $cus/CustomerNum
return
<orderLine LineItems = "{ count($ln) }" />
}
{
for $ln1 in doc("../premiere/OrderLine.xml")//OrderLine[OrderNum = $ord/OrderNum]
let $total := ($ln1/NumOrdered * $ln1/QuotedPrice)
return
<orderRevenue TotalAmount= "{$total}" />
}
</row>
}
</results>
, который работает нормально, когда в системе только один заказ, но когда есть несколько заказов, я получаю две суммы.
Я получаю это:
<row>
<order number="21610"/>
<customer name="Ferguson's"/>
<orderLine LineItems="2"/>
<orderRevenue TotalAmount="495"/>
<orderRevenue TotalAmount="399.99"/>
</row>
когда я должен получить это:
<row>
<order number="21610"/>
<customer name="Ferguson's"/>
<orderLine LineItems="2"/>
<orderRevenue TotalAmount="894.99"/>
Любая помощь?