2013-11-22 37 views
0

我有一个问题,处理Xquery。 我的目标是显示不同元素的所有元素从一个循环具有相同的属性,但另一个不同。已经有48小时了,我无法前进! :(通过通用条件属性列出属性

在这里,我有表的类型的例子:

<people> 
<crazy id="123" firstname="John" lastname="Fool" score="20"> 
<crazy id="123" firstname="John" lastname="Fool" score="80"> 
<crazy id="123" firstname="John" lastname="Fool" score="77"> 
<crazy id="123" firstname="John" lastname="Fool" score="49"> 
<crazy id="789" firstname="Lea" lastname="Dumb" score="54"> 
<crazy id="789" firstname="Lea" lastname="Dumb" score="89"> 
<crazy id="789" firstname="Lea" lastname="Dumb" score="99"> 
<crazy id="789" firstname="Lea" lastname="Dumb" score="4"> 
<crazy id="247" firstname="Paul" lastname="Duck" score="16"> 
<crazy id="247" firstname="Paul" lastname="Duck" score="91"> 
<crazy id="247" firstname="Paul" lastname="Duck" score="22"> 
<crazy id="247" firstname="Paul" lastname="Duck" score="31"> 
</people> 

我想获得类似的东西:

<person>247</person> 

(这是对一个列表具有比“50”更多的2分以下的人的“id”

我有类似的东西

let $calc:= (

    for $boucle in people where ($boucle/@score>="50") 
    return $boucle 

) 

现在,我想列出大于50 ,但我不知道如何着手:(中有小于2“分数”的人数:(

回答

0

我不是100 %确定你想要什么,但我认为是这样的:

for $id in distinct-values(//crazy/@id) 
    where count(//crazy[@id = $id and number(@score) gt 50]) lt 2 
return <person>{$id}</person>