XQuery产生不正确的输出
示例xml如下所示:XQuery产生不正确的输出,xquery,Xquery,示例xml如下所示: <sales> ............ <customer custid="108"> <name>NORTH WOODS HEALTH AND FITNESS SUPPLY CENTER</name> <address>98 LONE PINE WAY</address> <city>HIBBING</c
<sales>
............
<customer custid="108">
<name>NORTH WOODS HEALTH AND FITNESS SUPPLY CENTER</name>
<address>98 LONE PINE WAY</address>
<city>HIBBING</city>
<state>MN</state>
<zip>55649</zip>
<area>612</area>
<phone>566-9123</phone>
<repid>7844</repid>
<creditlimit>8000</creditlimit>
<ord ordid="613">
<orderdate>1987-02-01</orderdate>
<shipdate>1987-02-01</shipdate>
<total>6400</total>
<item itemid="1">
<product_ref ref="100871"/>
<actualprice>5.6</actualprice>
<qty>100</qty>
<itemtot>560</itemtot>
</item>
</ord>
</customer>
<product prodid="100860">
<descrip>ACE TENNIS RACKET I</descrip>
<price>
<stdprice>35</stdprice>
<minprice>28</minprice>
<startdate>1986-06-01</startdate>
</price>
</product>
.........
</sales>
............
北伍兹健康健身供应中心
孤松路98号
HIBBING
锰
55649
612
566-9123
7844
8000
1987-02-01
1987-02-01
6400
5.6
100
560
王牌网球拍
35
28
1986-06-01
.........
let$product:=doc('sales.xml')/sales/product
对于文档('sales.xml')/sales/customer/ord/item中的$item
其中$item/actualprice<$product[@prodid=$item/product\u ref/@ref]/price/minprice
退货$item
我得到的结果是:
<item itemid="1">
<product_ref ref="100861"/>
<actualprice>35</actualprice>
<qty>1</qty>
<itemtot>35</itemtot>
</item>
<item itemid="3">
<product_ref ref="101863"/>
<actualprice>10</actualprice>
<qty>150</qty>
<itemtot>1500</itemtot>
</item>
<item itemid="7">
<product_ref ref="101863"/>
<actualprice>12.5</actualprice>
<qty>200</qty>
<itemtot>2500</itemtot>
</item>
<item itemid="5">
<product_ref ref="101863"/>
<actualprice>9</actualprice>
<qty>100</qty>
<itemtot>900</itemtot>
</item>
35
1.
35
10
150
1500
12.5
200
2500
9
100
900
但ref=101863的项目不正确。只有id=5的项目低于minprice。
为什么会发生这种错误?尝试了很多不同的查询,但结果总是一样的。
它在ref=100861时运行良好。假设查询不支持模式,则将两个价格作为字符串而不是数字进行比较。在比较之前,您需要将两者转换为数字。您的xml不包含xquery结果中的信息(例如,xml没有id=5的项)。请编辑xml,使其与预期输出一致。
<item itemid="1">
<product_ref ref="100861"/>
<actualprice>35</actualprice>
<qty>1</qty>
<itemtot>35</itemtot>
</item>
<item itemid="3">
<product_ref ref="101863"/>
<actualprice>10</actualprice>
<qty>150</qty>
<itemtot>1500</itemtot>
</item>
<item itemid="7">
<product_ref ref="101863"/>
<actualprice>12.5</actualprice>
<qty>200</qty>
<itemtot>2500</itemtot>
</item>
<item itemid="5">
<product_ref ref="101863"/>
<actualprice>9</actualprice>
<qty>100</qty>
<itemtot>900</itemtot>
</item>