I need to write an XQuery from a given XML but I cannot find the right way to do it.
Here is the xml:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Edited by XMLSpy -->
<onlinecomputer>
<item name="Processor" price="100.00"/>
<item name="USB driver" price="50.00"/>
<item name="Webcam" price="20.50"/>
<item name="Notebook" price="700.00"/>
<place>
<name>Prishtin</name>
<customer>
<name>Hana</name>
<street> Nen Tereza</street>
<order item="Processor" amount="1"/>
<order item="USB driver" amount="3"/>
<order item="Webcam" amount="3"/>
<order item="Notebook" amount="2"/>
</customer>
<customer>
<name>Ron</name>
<street> blbl</street>
<order item="Webcam" amount="1"/>
</customer>
</place>
<place>
<name>Tetove</name>
<customer>
<name>Edin</name>
<street> gggg</street>
<order item="Processor" amount="4"/>
<order item="Notebook" amount="1"/>
</customer>
<customer>
<name>Alex</name>
<street> bbbb</street>
<order item="Processor" amount="2"/>
</customer>
</place>
</onlinecomputer>
The XQuery should write an expression that will give the set of pairs (place and item) such that this item has been shipped in a given place.
The result should be like:
<answer place="nameOfPlace" item="nameOfItem" />
for $p in onlinecomputer/place
for $i in distinct-values(customer/order/@item)
return <answer place="{ $p/name }" item="{ $i }"/>