Qlik Community

QlikView Scripting

Discussion Board for collaboration on QlikView Scripting.

Announcements
QlikView Fans! We’d love to hear from you.
Share your QlikView feedback with the product team… Click here to participate in our 5-minute survey.
Rules, plus terms and conditions, can be found here.
Not applicable

Necesito obtener una tabla detallada de todos los meses comprendidos en un rango de fechas de una tabla inicial

Consulta!

Tengo una tabla como la siguiente:

ID

AñoInicio

MesInicio

AñoFin

MesFin

13

2012

4

2012

12

Lo que necesito obtener es lo siguiente:

ID

Año

Mes

13

2012

4

13

2012

5

13

2012

6

13

2012

7

13

2012

8

13

2012

9

13

2012

10

13

2012

11

13

2012

12

Alguien sabe como armarlo?

Gracias!

Tags (4)
3 Replies
Not applicable

Re: Necesito obtener una tabla detallada de todos los meses comprendidos en un rango de fechas de una tabla inicial

Hola Matias

seria mejor en inglese pero yo traigo

necessite de hacer un "outer join" entre tu primera tabla y una otra que tiene todo los meses que quieres

LA secunda puede venir de una tabla existante (ventas por ejemplo :  LOAD distinct ano, mes from ventas)  or con LOAD * INLINE [ano, mes];

LOAD * from T1;

outer join

LOAD * FROM T2;

Pones la misma llave entre los dos tablas (por ejemplo %D  = makedate(ano, mes) )

Chris

Re: Re: Necesito obtener una tabla detallada de todos los meses comprendidos en un rango de fechas de una tabla inicial

Data:

LOAD * INLINE [

ID,AñoInicio,MesInicio,AñoFin,MesFin

13,2012,4,2012,12

];

Final:

LOAD ID,

     year(addmonths(makedate(AñoInicio, MesInicio), iterno()-1)) as Año,

     num(month(addmonths(makedate(AñoInicio, MesInicio), iterno()-1))) as Mes

RESIDENT Data

while addmonths(makedate(AñoInicio, MesInicio), iterno()-1) <= makedate(AñoFin, MesFin);

DROP TABLE Data;

Not applicable

Re: Necesito obtener una tabla detallada de todos los meses comprendidos en un rango de fechas de una tabla inicial

Cuadro1:

LOAD * INLINE

[

ID,AñoInicio,MesInicio,AñoFin,MesFin

13,2012,4,2012,12

];

Final:

    LOAD

    ID,

    AñoFin as Año,

    MesInicio as Mes RESIDENT Cuadro1;

   

   

FOR i=1 to 8

    LET vMes = PEEK('Mes');

    LOAD

    ID,

    AñoFin as Año,

    $(vMes) + 1 as Mes

    RESIDENT Cuadro1;

   

NEXT i

DROP TABLE Cuadro1;

Community Browser