Skip to main content
Announcements
Accelerate Your Success: Fuel your data and AI journey with the right services, delivered by our experts. Learn More
cancel
Showing results for 
Search instead for 
Did you mean: 
wagnerhelio
Contributor
Contributor

Script para comparação de períodos

Boa tarde, pessoal preciso de ajuda com esse modelo de dados. Tenho dois QVDs nesse formato. Ambos são QVDs com milhões de linhas ( a tabela de afastamentos é um pouco menor mas com mais de um milhão de linhas). Preciso identificar casos em o CPF encontra-se em uma escala de trabalho em uma data que o mesmo estava em afastamento. modelo.JPG

Eu consegui fazer por expressão no painel com IF. Porém como as tabelas são muito grandes, ficou muito pesado e está dando Tempo de Cálculo Ultrapassou limite. Dessa forma que fazer em um Transform. Alguém tem alguma sugestão sobre posso posso conseguir fazer um inner join entre essas duas tabelas de forma que eu consiga obter como resultado final o cpf, data inicial da escala, data final da escala, data inicial de afastamento e data final de afastamento.

Exemplo de dado que deveria existir no qvd final: cpf1, data inicio escala = 15-06-2021, data fim escala = 16-06-2021 e na tabela 2 - cpf1, data inicio afastamento 01-06-2021, data fim afastamento 15-06-2021.

Exemplo de dado que não deveria existir no qvd final: cpf2, data inicio escala = 15-06-2021, data fim escala = 16-06-2021 e na tabela 2 - cpf2, data inicio afastamento 18-06-2021, data fim afastamento 30-06-2021.

 

Agradeço a colaboração.

3 Replies
Gui_Approbato
Partner - Creator III
Partner - Creator III

Olá Wagner,

Apesar de ainda não ter testado, eu acho que a função Intervalmatch pode te ajudar no que precisa.

Dê uma olhada e veja se é isso: https://help.qlik.com/pt-BR/sense/February2021/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPref...

wagnerhelio
Contributor
Contributor
Author

Obrigado pela resposta, eu tentei  utilizar o intervalmatch criando vinculando com uma terceira tabela de calendario contendo data, de forma que posteriormente fosse possível vincular as duas tabelas finais a partir de cpf e data, mas não rodou o script. Acredito que devido ao tamanho das tabelas. Tem alguma forma de utilizar o intervalmatch sem essa terceira tabela? é possível comparar dois períodos? No tutorial mostra somente passando uma data para comparar com um intervalo.

Gui_Approbato
Partner - Creator III
Partner - Creator III

Entendi..

É cardinalidade 1:1  / existe mais de um registro por cpf?

Se sim, seria viável uma tabela somente com CPFs e fazer um left join com as duas, ficando com as 5 colunas em uma base?

Assim uma condicional de where depois disso seria mais fácil.