Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Modelagem com range de data

Olá pessoal, estou com dificuldade em chegar ao seguinte resultado de uma modelagem.

Estrutura Original


ID

DT_COMPETENCIA

STATUS

1

01/01/2010

A

1

03/01/2010

B

1

05/01/2010

C

2

01/01/2010

A

2

04/01/2010

B

3

31/12/2009

A

3

02/01/2010

B

3

04/04/2010

C

Estrutura Final

ID

DT_COMPETENCIA

STATUS

1

01/01/2010

A

1

02/01/2010

A

1

03/01/2010

B

1

04/01/2010

B

1

05/01/2010

C

2

01/01/2010

A

2

02/01/2010

A

2

03/01/2010

A

2

04/01/2010

B

3

31/12/2009

A

3

01/01/2010

A

3

02/01/2010

B

3

03/01/2010

B

3

04/04/2010

C

Legendas

Novos Registros em Negrito

Status dos Novos registros = Status Registro Anterior

Range Data ID= 1

Min

01/01/2010

Max

05/01/2010

Range Data ID= 2

Min

01/01/2010

Max

04/01/2010

Range Data ID= 3

Min

31/12/2009

Max

04/04/2010

Alguém tem alguma idéia p/ que eu possa chegar a este resultado?



Agradecido.

1 Solution

Accepted Solutions
marksouzacosta
Partner - Creator II
Partner - Creator II

Vitor,

Você vai ter que usar a função IntervalMatch pra conseguir fazer isso que você está querendo no seu Load Script. Dê uma conferida no Help do QlikView. Lá tem um exemplo até parecido com o que você quer.

Uma dica que posso te dar agora é você criar uma inline table com o seu Range ID, Min e Max.
Vai ficar mais ou menos assim:

RangeData:
LOAD * INLINE [

RangeDataID, Min, Max

1, 01/01/2010, 05/01/2010

2, 01/01/2010, 04/01/2010

3, 31/12/2009, 04/04/2010

];

Feito isso só usar o IntervalMatch para juntar as tabelas.

Read more at Data Voyagers - datavoyagers.net

View solution in original post

2 Replies
marksouzacosta
Partner - Creator II
Partner - Creator II

Vitor,

Você vai ter que usar a função IntervalMatch pra conseguir fazer isso que você está querendo no seu Load Script. Dê uma conferida no Help do QlikView. Lá tem um exemplo até parecido com o que você quer.

Uma dica que posso te dar agora é você criar uma inline table com o seu Range ID, Min e Max.
Vai ficar mais ou menos assim:

RangeData:
LOAD * INLINE [

RangeDataID, Min, Max

1, 01/01/2010, 05/01/2010

2, 01/01/2010, 04/01/2010

3, 31/12/2009, 04/04/2010

];

Feito isso só usar o IntervalMatch para juntar as tabelas.

Read more at Data Voyagers - datavoyagers.net
Not applicable
Author

Valeu Mark.

Estava usando um FOR, mas agora ficou legal.

té...