У меня следующий результат до сих пор формирует запрос к файлам 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 попытался изменить приведенное ниже значение отлично, чтобы показать пары после определения, какие пары различны.
let $items := (1,2,4,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>
...