取一個簡單的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)。