0
我想看看有多少车次已被送往加州两个日期计数XQuery中给出奇怪的结果
我有如下当前的XQuery中:
for $x in doc("triptracker.xml")/data/cities/city,
$y in doc("triptracker.xml")/data/trips/trip
let $date as xs:date := xs:date($y/date)
where $x/cityName = $y/cityName and $x/state = "CA" and
$date gt xs:date("2003-01-01") and $date lt xs:date("2006-12-31")
return <Result>Trips to California: {count($y)}</Result>
这给了我结果集
<Result>Trips to California: 1</Result>
<Result>Trips to California: 1</Result>
<Result>Trips to California: 1</Result>
<Result>Trips to California: 1</Result>
<Result>Trips to California: 1</Result>
而不是只给我5
这里的计数是个XML数据的e型所给出的行程和城市
<trips>
<trip>
<ssn>123-20-4567</ssn>
<cityName>Tucson</cityName>
<date>2001-08-11</date>
</trip>
</trips>
<cities>
<city>
<cityName>Houston</cityName>
<state>TX</state>
<location>
<latitude>29.76045</latitude>
<longitude>-95.369784</longitude>
</location>
</city>
</cities>
任何帮助,将不胜感激
正确。 “for”表达式的return子句对于“in”表达式的每个值都会被评估一次(或者如果存在多个“for”子句,那么对于每个组合都会进行一次),因此在return子句中没有办法进行聚合 - 不需要这样做,因为如果你要聚合一个序列,那么你不需要迭代序列。 –