到目前为止,通过对xml文件的查询,我得到以下结果。
<results>
<project>
<pnumber>1</pnumber>
<workers>
<essn>123456789</essn>
<essn>453453453</essn>
</workers>
</project>
<project>
<pnumber>2</pnumber>
<workers>
<essn>123456789</essn>
<essn>333445555</essn>
<essn>453453453</essn>
</workers>
</project>
...
依次类推6个项目(pnumber)。我需要为每个项目的值找到essn的值对,并为工人列出它们。结果中不能包含重复对或反向对。
IV在确定了哪些对是不同的之后,尝试修改下面的distinct-value以显示对。
let $items := (1,2,4,5,5)
let $unique-items := distinct-values($items)
return
<result>
<items>
{
for $item in $unique-items
return <item>{$item}</item>
}
</items>
</result>
我只是在集合中获得唯一值。
我用它来到达现在的位置,
<results>
{
for $project in doc("../company/project.xml")//project
where $project/pnumber=*
return
<project>
{$project/pnumber}
{
let $works_on := doc("../company/works_on.xml")//works_on[pno = $project/pnumber]
return
<workers>
{$works_on/essn}
</workers>
}
</project>
}
</results>
结果应该像这样
<results>
<project>
<pnumber>1</pnumber>
<workers>
<pair1>
<essn>123456789</essn>
<essn>453453453</essn>
</pair1>
</workers>
</project>
<project>
<pnumber>2</pnumber>
<workers>
<pair1>
<essn>123456789</essn>
<essn>333445555</essn>
</pair1>
<pair2>
<essn>453453453</essn>
<essn>333445555</essn>
</pair2>
<pair3>
<essn>123456789</essn>
<essn>453453453</essn>
</pair3>
</workers>
</project>
...