Skip to main content
Announcements
See why Qlik is a Leader in the 2024 Gartner® Magic Quadrant™ for Analytics & BI Platforms. Download Now
cancel
Showing results for 
Search instead for 
Did you mean: 
jcabriag
Contributor
Contributor

Filtrar datos de un cuadro de lista

Hola,

A ver si alguien me puede ayudar. Tengo los datos de ventas de la empresa y ahora he incorporado los abonos. En una pestaña nueva, he añadido un cuadro de lista dónde tengo todos los productos pero quisiera mostrar sólo los que tienen abonos, ahora me salen todos los que tienen ventas. Como añado esa condición?

Gracias.

1 Solution

Accepted Solutions
Not applicable

Si estás añadiendo los abonos en la misma tabla de las Ventas (probablemente con importes negativos), lo cual puede ser muy buena opción, la mejor solución que se me ocurre es crear manualmente un campo que identifique los abonos y que puedas utilizar para filtrar esos registros. Por ejemplo, con el siguiente script tendrías un campo llamado TipoMovimiento que podrías utilizar para discriminar entre Ventas y Abonos:

LOAD

     CustomerID,

     Amount,

     SalesDate,

     'Venta' AS TipoMovimiento;

SQL SELECT *

FROM VENTAS;

LOAD

     CustomerID,

     Amount * (-1) AS Amount,

     SalesDate,

     'Abono' AS TipoMovimiento;

SQL SELECT *

FROM ABONOS;

View solution in original post

7 Replies
montero91
Creator
Creator

Hola jcabriag.

 

Primero carga tu catalogo, y en la tabla que quieres reducir, en el Where ingresa el exist

  Ejemplo

 

Catalogo:

  Load

  Producto

  From [x.xlsx];

  

Venta:

  Producto

  Importe

  Pza

  From [x.qvd]

  Where exist(Producto, Producto);

 

Con lo cual busca en el campo Producto los productos ya cargados.

Not applicable

Si estás añadiendo los abonos en la misma tabla de las Ventas (probablemente con importes negativos), lo cual puede ser muy buena opción, la mejor solución que se me ocurre es crear manualmente un campo que identifique los abonos y que puedas utilizar para filtrar esos registros. Por ejemplo, con el siguiente script tendrías un campo llamado TipoMovimiento que podrías utilizar para discriminar entre Ventas y Abonos:

LOAD

     CustomerID,

     Amount,

     SalesDate,

     'Venta' AS TipoMovimiento;

SQL SELECT *

FROM VENTAS;

LOAD

     CustomerID,

     Amount * (-1) AS Amount,

     SalesDate,

     'Abono' AS TipoMovimiento;

SQL SELECT *

FROM ABONOS;

jcabriag
Contributor
Contributor
Author

Hola Manuel,

Gracias por responder. Si yo cargo todo mi catálogo de productos, después cargo las ventas con la sentencia exist y seguidamente cargo los abonos con la misma sentencia, en mis datos habrá productos que tienen ventas y no tienen abonos. En la pestaña donde muestro un estudio de los abonos tengo un cuadro de lista para poder filtrar por producto pero solo me interesa ver los productos que tienen abonos, no los que solo tienen ventas.

No se si acaba de quedar muy claro.

Muchas gracias por tu ayuda.

soniacoprosa
Creator
Creator

Hola jcabriaq,

Te adjunto un ejemplo a ver si te sirve.

Si no lo entendí mal, lo que quieres es seleccionar mediante ese cuadro de lista en el que sólo te salen los códigos de aquellos productos que tienen abonos los productos de tu catálogo de productos.

Un saludo,

montero91
Creator
Creator

Hola jcabriag.

Si entendí solo quieres tener los productos que tienen bonos, la Respuesta de Juan es muy útil ya que en la nueve de datos tendrías todo, y con un campo puedes filtrar cuales son los que tienen Bono.

Si únicamente requieres los productos con bono, es la misma mecánica que el ejemplo de la lista.

 

Primero carga tu tabla de Bonos con los productos que únicamente quieres tener, y en las tablas siguientes lo condicionas con la sentencia.

 

Where Exist ([Campo Comparar],[Campo Tabla]) para que time la primera tabla la tomen como base y los siguientes se basen en lo previamente cargados.

 

Saludos…

jcabriag
Contributor
Contributor
Author

Hola Sonia,

Gracias por tu respuesta. Tu ejemplo me ha servido de ayuda.

La idea que tenía era no trastear con el script, quería utilizar Set Analysis.

Por ejemplo, si queremos contar los artículos que tienen abonos podemos utilizar esta sentencia:

Count({<AbonoMarca = {1}>}DISTINCT(CodigoArticulo))

Donde AboMarca es una marca que pongo cuando cargo los abonos.

Pero no sé (creo que no se puede....) como utilizar Set Análysis sin funciones de agregación (count, sum, avg,......)

Aplicaré tu ejemplo en mi proyecto.

Gracias.

soniacoprosa
Creator
Creator

De nada jcabriaq,

Me alegro de que te haya servido.

En el foro podrías plantear qué es lo que quieres sacar con Set Analysis, por si alguien sabe cómo hacerlo; aunque creo que sólo se puede usar con funciones de agregación.

Un saludo,