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

Cargar 3 últimos meses y los mismos meses del año anterior

Hola , ya comenté algo parecido en otro hilo y se resolvió; que era recargar los 3 últimos meses.

LET vDateMin = Floor(Today()- 91)

Y luego en la consulta a la base de datos la especificas en el where:

Where CAMPO_FECHA_SQL >= $(vDateMin)

Pero también necesito que se recargue los mismos meses que los 3 últimos pero del año anterior.

Alguien tiene idea de cómo poder hacerlo?

Un saludo y gracias.

1 Solution

Accepted Solutions
alex_millan
Creator III
Creator III

Hola Alexis,

Creo que con los siguientes ejemplos verás más claro cómo encarrilar el asunto.

Te pongo algunos ejemplos de como declarar la variable y su resultado (tomando como referencia que hoy es 25/09/2014):

25/09/2014 --> LET vVariable1 = Date(Floor(Today()),'DD-MM-YYYY');

26/06/2014 --> LET vVariable2 = Date(Floor(Today()- 91),'DD-MM-YYYY');

01/07/2014 --> LET vVariable3 = Date(Floor(addmonths(Today(),-2)-Day(Today()-1)),'DD-MM-YYYY');

01/07/2013 --> LET vVariable4 = Date(Floor(addmonths(Today(),-14)-Day(Today()-1)),'DD-MM-YYYY');

25/09/2013 --> LET vVariable5 = Date(Floor(addmonths(Today(),-12)),'DD-MM-YYYY');

Un saludo y ya me cuentas

View solution in original post

4 Replies
alex_millan
Creator III
Creator III

Hola Alexis,

puntualiza, solo como aclaración,  que la sintaxis de la consulta SQL anterior, obtendrías datos para los últimos 90 días, no por meses enteros. Por ejemplo, si haces la consulta el 15 de Junio, no obtendrás datos desde el 1 Abril, sino los 90 días anteriores.

Si quisieras hacerlo así tendrás que declarar la variable así:

Date(Floor(addmonths(Today(),-2)-Day(Today()-1)),'DD-MM-YYYY')

Para hoy, día 25/09/2014, daría el resultado 01/07/2014.

Teniendo esto claro, en tu supuesto, ¿tratas los años por separado? Si consultas en febrero 2014, ¿sacas los datos desde el 1 de Enero del 2014, o bien desde el 1 de Diciembre de 2013?

Un saludo

alexis_garcia
Creator II
Creator II
Author

Hola Alex, gracias por tu respuesta.

Pues ahora mismo ya que estamos en Septiembre me muestra Julio, Agosto y Septiembre, por lo que no puedo saber lo que me comentas, pero supongo que en tu supuesto si selecciono 2014 me saldrán Enero y Febrero y si selecciono 2013 saldría Diciembre.

No se cómo poder solucionarlo!

Supongo que irá encaminado en restar 365 días a la fecha y así tendría el año anterior y a la hora de recargar obtendría los valores de los mismos meses en 2014 y 2013.

Un saludo y gracias.

alex_millan
Creator III
Creator III

Hola Alexis,

Creo que con los siguientes ejemplos verás más claro cómo encarrilar el asunto.

Te pongo algunos ejemplos de como declarar la variable y su resultado (tomando como referencia que hoy es 25/09/2014):

25/09/2014 --> LET vVariable1 = Date(Floor(Today()),'DD-MM-YYYY');

26/06/2014 --> LET vVariable2 = Date(Floor(Today()- 91),'DD-MM-YYYY');

01/07/2014 --> LET vVariable3 = Date(Floor(addmonths(Today(),-2)-Day(Today()-1)),'DD-MM-YYYY');

01/07/2013 --> LET vVariable4 = Date(Floor(addmonths(Today(),-14)-Day(Today()-1)),'DD-MM-YYYY');

25/09/2013 --> LET vVariable5 = Date(Floor(addmonths(Today(),-12)),'DD-MM-YYYY');

Un saludo y ya me cuentas

alexis_garcia
Creator II
Creator II
Author

Muchas gracias Alex, creo que lo podré solucionar con lo que me comentas.

Es muy útil tu comentario.

En cuanto tenga un momento libe lo pruebo y comento.

Muchas gracias de verdad.

Un asludo.