Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Olá,
Tenho uma demanda para criar uma tabela histórica a partir de uma tabela de mudanças, por exemplo:
QVD 1:
Cod Funcionario
Data Admissão
Data Mudança
Função Nova
Função Anterior
Precisaria criar um QVD que mostrasse o funcionário e criasse um registro por dia a partir da Data Admissão com sua Função, assim quando tivesse uma Data Mudança, a partir dessa data a Função seria outra.
Exemplo:
Cod Funcionario: 001
Data Admissão: 01/01/2016
Data Mudança: 06/01/2016
Função Nova: Operador 2
Função Anterior: Operador 1
Neste exemplo teria que criar um QVD:
Cod Funcionario Data Função
001 01/01/2016 Operador 1
001 02/01/2016 Operador 1
001 03/01/2016 Operador 1
001 04/01/2016 Operador 1
001 05/01/2016 Operador 1
001 06/01/2016 Operador 2
001 07/01/2016 Operador 2
Douglas, você pode criar essa lógica utilizando o WHILE.
Veja em anexo o exemplo:
Tabela_Tmp:
LOAD * INLINE [
FUNCIONARIO, DATA_INICIO, DATA_TERMINO
1, 01/06/2016, 10/06/2016
2, 05/05/2016, 04/07/2016
3, 25/02/2016, 13/05/2016
];
Tabela:
NoConcatenate
LOAD
FUNCIONARIO,
DATA_INICIO,
DATA_TERMINO,
Date( DATA_TERMINO - (IterNo() -1), 'DD/MM/YYYY') as DATA
RESIDENT Tabela_Tmp
WHILE num( DATA_TERMINO - (IterNo() -1 )) >= DATA_INICIO;
DROP TABLE Tabela_Tmp;
Boa tarde Douglas,
É possível fazer isso com a função Intervalmatch().
Veja no manual com a função funciona.
Don't worry, be Qlik.
Douglas, você pode criar essa lógica utilizando o WHILE.
Veja em anexo o exemplo:
Tabela_Tmp:
LOAD * INLINE [
FUNCIONARIO, DATA_INICIO, DATA_TERMINO
1, 01/06/2016, 10/06/2016
2, 05/05/2016, 04/07/2016
3, 25/02/2016, 13/05/2016
];
Tabela:
NoConcatenate
LOAD
FUNCIONARIO,
DATA_INICIO,
DATA_TERMINO,
Date( DATA_TERMINO - (IterNo() -1), 'DD/MM/YYYY') as DATA
RESIDENT Tabela_Tmp
WHILE num( DATA_TERMINO - (IterNo() -1 )) >= DATA_INICIO;
DROP TABLE Tabela_Tmp;