Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
FranKan
Contributor
Contributor

Set Analysis - Análisis de conjuntos (en Español)

Hola a tod@s:

Necesito obtener el registro de una tabla con la siguiente lógica:

Tengo una tabla ventas con los campos fecha_de_venta y codigo_articulo, otra tabla tarifas con el campo fecha_desde que me indica a partir de que fecha un artículo tiene y el campo codigo_articulo.

El campo codigo_articulo lo tengo enlazado ya que tienen el mismo nombre.

Lo que quiero obtener, mediante una expresión de análisis de conjuntos  es la comisión de la tabla tarifas que es la máxima fecha_desde que es menor de fecha_venta.

To he hecho algo tal que así:

sum({$<Fecha_Desde={"<=1(=Max(Fecha_Servicio))"}>}Comision)

 

Esto lo se hacer desde SQL, pero tengo que hacer varias subconsultas y tarda mucho por lo que he obtenido las dos tablas por separado en qlikview y quiero crear la Expresión para obtener el resultado deseado

Pero no obtengo ningún resultado ¿puede alguien ayudarme?

1 Solution

Accepted Solutions
rubenmarin

Puedes probar con:
=Date(Max({1<Fecha_Desde={"<=$(=Max(Fecha_Servicio))"}>} Fecha_Desde), 'DD/MM/YYYY')

Y añadir las comillas en la expresión:
=Sum({<Fecha_Servicio, Fecha_Desde={'$(vMaxFechaDesde)'}>} comision)

View solution in original post

3 Replies
rubenmarin

Hola, podrías crear una variable que obtenga la fecha desde más alta (el primer signo igual debe ser parte del contenido de la variable):
=Max({1<Fecha_Desde={"<=$(=Max(Fecha_Servicio))"}>} Fecha_Desde)

Y usar esta variable en la expresión:
=Sum({<Fecha_Servicio, Fecha_Desde={$(vMaxFechaDesde)}>} comision)
FranKan
Contributor
Contributor
Author

Hola Rubén:

He creado la variable y esta me funciona bien ya que me muestra el resultado deseado, el problema viene cuando utilizo la variable en la expresión ya que me devuelve siempre un valor de 0€, sin embargo si sustituyo la variable por la fecha que me devuelve "01/06/2018" esta expresión si que me retorna la comisión esperada.

 

rubenmarin

Puedes probar con:
=Date(Max({1<Fecha_Desde={"<=$(=Max(Fecha_Servicio))"}>} Fecha_Desde), 'DD/MM/YYYY')

Y añadir las comillas en la expresión:
=Sum({<Fecha_Servicio, Fecha_Desde={'$(vMaxFechaDesde)'}>} comision)