Je suis très nouveau à XQuery alors excusez-moi si je suis en quelque sorte manquant quelque chose.XQuery valeurs distinctes avec problème clause where
Je suis en train d'extraire des données où certains sous-nœuds d'un élément sont DISTINCT, ainsi que où est un certain nœud frère est égal à une chaîne prédéfinie
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
Le XML J'Interrogation ressemble à ceci :
<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>
donc, fondamentalement, je veux seulement occurances DISTINCTS du produit, et que si l'attribut nom de la catégorie est égal à « bon marché ».
Ma requête renvoie des produits DISTINCT, mais la clause where semble n'avoir aucun effet, elle renvoie toujours des produits dont la catégorie est "Cher".
Quelqu'un peut-il conseiller sur ce que je fais mal.
Impressionnant, merci beaucoup! Cela a fonctionné parfaitement. – BoomShaka