Я очень плохо знаком с XQuery, так что извините, если я что-то упустил.
Я пытаюсь извлечь данные, где некоторые подузлы элемента имеют значение DISTINCT, а также где определенные дочерние узлы равны некоторой предопределенной строке
for $product in fn:distinct-values(document('cpwdoc')/root/package/properties/value[@key="product"])
where document('cpwdoc')/root/package/categories/category[@name="Cheap"]
return $product
XML, который я запрашиваю, выглядит следующим образом:
<root>
<package>
<title>Some package 1</title>
<categories><category group="Other" name="Cheap"/></categories>
<properties>
<value key="product">BLUE-TOOTHBRUSH</value>
</properties>
</package>
<package>
<title>Some package 2</title>
<categories><category group="Other" name="Expensive"/></categories>
<properties>
<value key="product">BLUE-TOOTHBRUSH</value>
</properties>
</package>
<package>
<title>Some package 3</title>
<categories><category group="Other" name="Expensive"/></categories>
<properties>
<value key="product">TOOTHPASTE</value>
</properties>
</package>
</root>
Так что в основном я хочу только РАЗЛИЧНЫЕ вхождения продукта, и только когда атрибут имени категории равен "Дешево".
Мой запрос возвращает продукты DISTINCT, но, похоже, что предложение where не оказывает никакого влияния, он по-прежнему возвращает продукты, для которых установлена категория "Дорого".
Может кто-нибудь посоветовать, что я делаю не так.