Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
Not applicable

IntervalMatch com Critério

Boa Noite,

Estou tentando consolidar em uma tabela fato alguns campos de um tabela de dimensão.

FATO:

fato.JPG

DIMENSÃO:

dimensao.JPG

Para realizar esse operação preciso fazer um busca da rota entre as rotas inicias e finais respeitando o tipo de veiculo afim de obter o resultado abaixo:

RESULTADO:

resultado.JPG

Já revirei a internet em busca de soluções mas não consegui encontrar nenhuma, e o intervalmatch simples sempre duplica as as linhas pois não estou conseguindo respeitar o critério tipo e as faixas de rota se repetem.

Por favor, alguém já passou por esse problema pode ajudar?

*Anexo o .qvw com um InLine das tabelas Fato e Dimensão e um modelo em .xlsx para quem preferir.

**Me pergunto se criar uma função em java seria uma solução mais assertiva.

Desde já, meu muito obrigado pela ajuda!

1 Solution

Accepted Solutions

Re: IntervalMatch com Critério

4 Replies

Re: IntervalMatch com Critério

One solution:

FATO:

LOAD * Inline

[

tipo,rota

carro,5

carro,7

caminhao,3

caminhao,8

];

DIMENSAO:

LOAD * Inline

[

rota_in,rota_fn,tipo,origem,destino,viagem

1,5,carro,SP,RJ,Interestadual

6,10,carro,SP,SP,Estadual

1,5,caminhao,SP,SP,Estadual

6,10,caminhao,SP,SP,Interestadual

];

Left Join (DIMENSAO)

IntervalMatch(rota, tipo)

LOAD rota_in,

  rota_fn,

  tipo

Resident DIMENSAO;

DROP Table FATO;

Capture.PNG

Re: IntervalMatch com Critério

Alternatively, you can try this also:

FATO:

LOAD *,

  tipo&rota as Key

Inline

[

tipo,rota

carro,5

carro,7

caminhao,3

caminhao,8

];

DIMENSAO:

LOAD *

Where Exists(Key, tipo&rota);

LOAD *,

  rota_in + IterNo() - 1 as rota

While rota_in + IterNo() - 1 <= rota_fn;

LOAD * Inline

[

rota_in,rota_fn,tipo,origem,destino,viagem

1,5,carro,SP,RJ,Interestadual

6,10,carro,SP,SP,Estadual

1,5,caminhao,SP,SP,Estadual

6,10,caminhao,SP,SP,Interestadual

];

DROP Table FATO;

Re: IntervalMatch com Critério

Not applicable

Re: IntervalMatch com Critério

Obrigado pela ajuda.

Essa técnica  amplia muito a aplicabilidade do QlikView !