Я хочу вернуть разные значения из разных коллекций в одном выражении FLWOR.
XML-файлы:
productos.xml
<productos>
<product categoria="A" pvp="20">
<codigo>A2015</codigo>
<nombre>Cuchillas</nombre>
<stock>100</stock>
</product>
<product categoria="A" pvp="5">
<codigo>A2005</codigo>
<nombre>Laminas</nombre>
<stock>57</stock>
</product>
<product categoria="B" pvp="15">
<codigo>B1501</codigo>
<nombre>Comida</nombre>
<stock>50</stock>
</product>
</productos>
clientes.xml
<clientes>
<clien numero="01">
<nombre>Luu</nombre>
<poblacion>Madrid</poblacion>
<tlf>111111111</tlf>
<direccion>Alcala</direccion>
</clien>
<clien numero="02">
<nombre>Joan</nombre>
<poblacion>Barcelona</poblacion>
<tlf>2222222222</tlf>
<direccion>Canalets</direccion>
</clien>
</clientes>
facturas.xml
<facturas>
<factura numero="100">
<fecha>01/01/01</fecha>
<importe>25</importe>
<numcliente>01</numcliente>
</factura>
<factura numero="101">
<fecha>01/01/01</fecha>
<importe>40</importe>
<numcliente>01</numcliente>
</factura>
<factura numero="102">
<fecha>01/01/01</fecha>
<importe>4</importe>
<numcliente>02</numcliente>
</factura>
</facturas>
detallefacturas.xml
<detallefacturas>
<factura numero="100">
<codigo>Z</codigo>
<producto descuento="0">
<codigo>A2015</codigo>
<unidades>2</unidades>
</producto>
<producto descuento="0">
<codigo>A2005</codigo>
<unidades>1</unidades>
</producto>
</factura>
<factura numero="101">
<codigo>X</codigo>
<producto descuento="0">
<codigo>B1501</codigo>
<unidades>5</unidades>
</producto>
</factura>
<factura numero="102">
<codigo>Y</codigo>
<producto descuento="0">
<codigo>C2020</codigo>
<unidades>15</unidades>
</producto>
<producto descuento="0">
<codigo>A2015</codigo>
<unidades>2</unidades>
</producto>
</factura>
</detallefacturas>
Мне нужно вернуть сведения о «фактурах», которые содержат продукты с «категорией = А»
Это может быть результатом:
Num factura 100, клиент Luu, категория продуктов A: 2
Я пытаюсь сделать что-то похожее на JOIN в SQL, но не могу получить нужные значения.
EDIT:
Это то, что я получил сейчас, но это не работает.
for $x in collection("/ventas")
let $NUMFACTURA := $x/facturas/factura
let $NOM := $x/clientes/clien[@numero=$NUMFACTURA/numcliente]
let $PRODFACTURA := $x/detallefacturas/factura[@numero=$NUMFACTURA/@numero]
let $CODPRODATA := $x/productos/product[@categoria="A"]/codigo
return $NUMFACTURA/@numero/string()