将SQL查询转换为计算两年销售额的XQuery。

将SQL查询转换为计算两年销售额的XQuery。,xquery,xquery-sql,Xquery,Xquery Sql,我很难用XQuery来计算两年的销售额,它是基于SQL查询的 SELECT [ShipCountry] & " " & [ShipCity] AS CountryAndCity, COUNT(OrderID) AS BiYearlySales FROM Orders WHERE (((OrderDate) BETWEEN #1/1/1996# And #1/1/1998#)) GROUP BY [ShipCountry] & " " & [ShipCity];

我很难用XQuery来计算两年的销售额,它是基于SQL查询的

SELECT [ShipCountry] & " " & [ShipCity] AS CountryAndCity, COUNT(OrderID) AS BiYearlySales
FROM Orders
WHERE (((OrderDate) BETWEEN #1/1/1996# And #1/1/1998#))
GROUP BY [ShipCountry] & " " & [ShipCity];
这是我到目前为止得到的xquery,但它只统计每个实例一次。我不明白为什么。 我正在使用AltovaXMLSpy-XQuery1.0

<Result>
{
for $a in doc("Orders.xml")/dataroot/Orders
let $b := concat($a/ShipCountry, " ", $a/ShipCity)
where $a/OrderDate >= '1996-01-01T00:00:00' and $a/OrderDate <= '1998-01-01T00:00:00'
return
<BiYearlySales>
    <CountryNameAndCity>{$b}</CountryNameAndCity>
    <OrderCount>{count($a)}</OrderCount>
</BiYearlySales>
}
</Result>

{
对于doc(“Orders.xml”)/dataroot/Orders中的$a
let$b:=concat($a/ShipCountry,“,$a/ShipCity)

其中$a/OrderDate>='1996-01-01T00:00:00'和$a/OrderDate不确定这是否完全正确…(没有尝试过),但类似于以下内容:

for $country in doc("Orders.xml")/dataroot/Orders[OrderDate ge '1996-01-01T00:00:00' and OrderDate le '1998-01-01T00:00:00']/ShipCountry, $city in doc(doc("Orders.xml")/dataroot/Orders[OrderDate ge '1996-01-01T00:00:00' and OrderDate le '1998-01-01T00:00:00']/ShipCity")
return 
<sales>
   <geo>{$country, " ", $city)}</geo>
   <count>{count(doc("Orders.xml")/dataroot/Orders
           [OrderDate ge '1996-01-01T00:00:00' and OrderDate le '1998-01-01T00:00:00' 
            and ShipCountry eq $country and ShipCity eq $city])}
   </count>
</sales>
doc中的$country(“Orders.xml”)/dataroot/Orders[OrderDate ge'1996-01-01T00:00:00'和OrderDate le'1998-01-01T00:00:00']/ShipCountry,$city在doc中(doc(“Orders.xml”)/dataroot/Orders[OrderDate ge'1996-01-01T00:00:00'和OrderDate le'1998-01-01T00:00']/ShipCity”)
回来
{$country,“,$city)}
{count(doc(“Orders.xml”)/dataroot/Orders
[订单日期ge'1996-01-01T00:00:00'和订单日期le'1998-01-01T00:00:00'
和ShipCountry eq$country和ShipCity eq$city])

FYI,我们有另外两个人要求帮助做同样的家庭作业。看看最近的其他问题可能会有所帮助。