2014-04-09 74 views
0

我想列出擁有所有A的學生的ID。這是我的XQuery:XQuery中的不平等

for $s1 in doc("Unv.xml")//Enrollment[Grade = 'A']/StudentInfo/@oID 
let $s2 := doc("Unv.xml")//Enrollment[Grade != 'A']/StudentInfo/@oID 
where every $id in $s1 
satisfies ($id != $s2) 
return <StraightA> { $s1 } </StraightA>; 

,這裏是我從拉數據招生科的一個片段:

<Enrollment EnrollmentID="Enrollment217"> 
    <OfferingInfo oType="OfferingType" oID="Offering009"/> 
    <StudentInfo oType="StudentType" oID="s895255243"/> 
    <Grade>B</Grade> 
</Enrollment> 

然而,這只是給了我是誰至少有一個學生名單A.想法?

回答

0

在XQuery中=!=是序列比較運算符;他們在一系列的價值觀中被一場比賽所滿足。 eqne是值比較運算符,並且它們以您期望的方式工作。

+0

我試過ne了,但那隻能和一個值一起使用。由於$ id和$ s2在我的情況下都擁有多個值,有什麼辦法可以讓我工作嗎? – user1547052

0

$ s1是至少有一個A的學生的ID列表。 $ s2是至少有一個非A的學生的ID列表。

functx:value-except((1,2,3),(3,4,5)) 
(1, 2) 

    distinct-values($arg1[not(.=$arg2)])