XQuery产生不正确的输出

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

示例xml如下所示:

<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>