Amal
Amal

Reputation: 21

How to solve distinct-values error

How to solve this error in XQuery. I want the data to be distinct with out duplication in XML result. I tried to add distinct-values in front of the doc in for statement, but this error was depicted.

Engine name: Saxon-PE XQuery 9.5.1.3
Severity: fatal
Description: XPTY0019: Required item type of first operand of '/' is node(); supplied        value has item type xs:anyAtomicType
         Start location: 23:0
        URL: http://www.w3.org/TR/xpath20/#ERRXPTY0019

This is code :

for $sv1 in distinct-values(doc('tc.xml')//term/year)
 let $sv2 := doc('tc.xml')//term[year= $sv1]
 let $sv3 := doc('tc.xml')//student[idStudent= $sv1/idStudent](:HERE IS THE ERROR LINE:)
 let $sv4 := doc('tc.xml')//program[idStudent= $sv3/idStudent]
  return
  <Statistics>
    {$sv1 } 
    <Count_Student>{count($sv2)}</Count_Student>
    <a50_60>{count(doc('tc.xml')/mydb//program[doc('tc.xml')/mydb//term/year =$sv1][avg>= 50 and avg < 60])}</a50_60>
</Statistics>

thank you in advance.

Upvotes: 1

Views: 320

Answers (1)

Ewout Graswinckel
Ewout Graswinckel

Reputation: 1273

distinct-values() will atomize your input, this means that $sv1/idStudent won't work because $sv1 is not an element. Instead of using $sv1 on the line that give an error I think you should be using $sv2.

Upvotes: 1

Related Questions