Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hola, tengo una duda de como hacer una operación entre conjuntos. La operación que necesito realizar es la siguiente
B - (A interseccion B)
Lo que quiero es sacar los IDs que salgan de esa operación.
A --> puedo sacarlo facilmente porque son ID que cumpla una condicion
B --> a su vez seria una unión
count({<campo1 = $:: campo1> + <campo2 = $::campo2>} ID)
Ahora mi duda es, que sintaxis debo usar para poder construir toda la operación. Partiendo de que tengo B y debe ser correcto en principio, como le puedo añadir interseccion (*) y al resultado de eso hacer la exclusión
Las operaciones en si las conozco *,+, -, pero lo que dudo es como poder consturir una expresión algo compleja como esa
Un saludo
Te hice un ejemplo bastantes sencillo que puedes utilizar colocarlo en tu aplicacion:
Si tienes un conjunto A= 1..7, B=5..10
Expresion de A = Only({<F1={"<=7"}>} F1)
Expresion de B = Only({<F1={">=5"}>} F1)
Entonces A Inters B
Only({<F1={"<=7"}>*<F1={">=5"}>}F1)
B - (A Inters B)
Only({<F1={">=5"}>-<F1={"<=7"}>*<F1={">=5"}>}F1)
Te hice un ejemplo bastantes sencillo que puedes utilizar colocarlo en tu aplicacion:
Si tienes un conjunto A= 1..7, B=5..10
Expresion de A = Only({<F1={"<=7"}>} F1)
Expresion de B = Only({<F1={">=5"}>} F1)
Entonces A Inters B
Only({<F1={"<=7"}>*<F1={">=5"}>}F1)
B - (A Inters B)
Only({<F1={">=5"}>-<F1={"<=7"}>*<F1={">=5"}>}F1)
Puedes usar exclude para lograr lo que quieres
count({<ID =e ({< ID = {"=count({<Campo_a ={'A'}>*<Campo_b ={'b'}>}ID) > 0"}>}) >} ID)
Buenas Juan,
Entiendo bien el ejemplo que has construido, la cuestión es que siempre esta condicionado a que F1 sea <,>,<=, etc que un valor.
En mi caso, yo no tengo que condicionarlo a un valor. Te intento explicra mejor. Tengo 3 tablas:
Tabla1: ID,IDComun,campo1, campo2...
Tabla2:IDComun,campo3,campo4
Tabla3:IDComun,campo5,campo6
Como ves todas las tablas tienen un campo,que es un IDComun, entonces lo que yo estaba haciendo era algo del tipo
count ({<campo2 = $::campo2>}IDComun)
De esa forma le estaba indicando que quiero que me cuente los IDComun, pero solo aquellos que esten en la Tabla1
Es decir, yo no puedo fijarlo en base a un valor, sino que tengo que fijar en base a alguno de los campos que tiene y que los diferencia del resto
Siento que no haya quedado claro antes
¿alguna sugerencia?
Un saludo
Igual no importa, puedes hacer la referencia con el campo que quieres y colocar los cojuntos de esa manera, lo hice asi para que vieras mejor como funciona.
Basicamente si ya tienes los cojuntos armados lo que tienes que hacer es colocarlos de esa manera.
Muchas gracias por tu ayuda. Aunque mis conjuntos son más complejos, con tu ejemplo sencillo lo entendí perfectamente. Y solo faltaba una vez teniendo seleccionado lo que quiero, un count, con aggr,
Un saludo