取一个简单的OrderDetail
表,每个记录有一个Quantity
和UnitPrice
。要获得每个订单与SQL的总价值是简单XQuery分组和聚合函数总是很慢吗?
SELECT OrderID, SUM(UnitPrice*Quantity)
FROM OrderDetail
GROUP BY OrderID
表转换为XML文件后,使用XQuery我能够得到这样
for $orderId in distinct-values(doc('orderDetails.xml')//orderDetails/OrderID)
let $totalValue :=
sum(
for $detail in doc("orderdetails.xml")//OrderDetails[OrderID =$orderId]
return $detail/Quantity * $detail/UnitPrice
)
return <order id="{$orderId}" totalValue="{$totalValue}" />
忽略相同的信息纯粹的愚蠢获取这样的信息,有没有更好的方式来编写XQUERY表达式?因为它非常非常慢(我正在使用XMLSpy)。