Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Jônatas
Contributor III
Contributor III

Vencimento de contrato

Bom dia, pessoal! 

Estou trabalhando com dados de estagiários da empresa que trabalho e preciso contabilizar em KPIs a quantidade de contratos que irão vencer dentro de 20, 60 e 90 dias. Minha dificuldade é que cada estagiário pode ter até 4 renovações de contrato ou seja, 4 datas de vencimento de contrato. Preciso pegar a última data de vencimento e verificar se está para vencer dentro dos prazos informados. Poderiam me ajudar? Obrigado!

1 Solution

Accepted Solutions
Thiago_Justen_

É sempre um prazer dar um help aqui. Foi assim que aprendi boa parte do que sei e ainda aprendo.

Vamos lá, vou usar teu script mesmo pra te propor a alteração:

Estagiarios:

Load

*,

If(Max_Vencimento < (Today()+21), 'Vence em 20 dias',

     If(Max_Vencimento > (Today()+20) and Max_Vencimento < (Today()+61),

           'Vence em 60 dias', 'Vence em 90 dias'

      )

)                        As 'Vence em x Dias';


LOAD idPessoal,
if(Status='ATIVO',Nome) as [Nome Ativo],
if(Status='INATIVO',Nome) as [Nome Inativo],
Lotacao,
if(Status='ATIVO',Matricula) as [Matricula Ativo],
if(Status='INATIVO',Matricula) as [Matricula Inativo],
Cargo,
Especialidade,
Supervisor_Estagiario,
InstituicaoEnsino,
Semestre,
DataDesligCargo,
Month(DataDesligCargo) as [Mês Desligamento],
YearName(DataDesligCargo) as [Ano desligamento],
TurnoEstagio,
Status,
formaDesligmento,
QtdContratos,
DataInicioContrato1,
DataTerminoContrato1,
DataInicioContrato2,
DataTerminoContrato2,
DataInicioContrato3,
DataTerminoContrato3,
DataInicioContrato4,
DataTerminoContrato4,

Date(RangeMax(DataTerminoContrato1,DataTerminoContrato2,DataTerminoContrato3,DataTerminoContrato4)) as Max_Vencimento
FROM
[..\Dados\estagiarios.qvd]
(qvd);

 

Dá uma testada e verifica se te ajuda de alguma forma.

 

Abs e Sucesso!!

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago

View solution in original post

6 Replies
Thiago_Justen_

Bom dia @Jônatas,

O que você pode fazer é no próprio script criar um campo de Max_Vencimento, por exemplo.

Sua_Tabela:

Load

*,

If(Max_Vencimento < (Today()+21), 'Vence em 20 dias',

     If(Max_Vencimento > (Today()+20) and Max_Vencimento < (Today()+61),

           'Vence em 60 dias', 'Vence em 90 dias'

      )

)                        As 'Vence em x Dias';

Load

Seus_Campos,

Date(RangeMax(Vencimento1,Vencimento2,Vencimento3,Vencimento4)) as Max_Vencimento

From Sua_BaseCarga;

 

Veja se te ajuda em algo.

Abs e Sucesso!!

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
Thiago_Justen_

Ah, você pode fazer via tela usando RangeMax(), If() e Today() conforme usei no script, mas no script fica mais fácil (eu acho hehe).

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
Jônatas
Contributor III
Contributor III
Author

Thiago, primeiramente meu muito obrigado pela ajuda! 

Sou iniciante no QlikView, não entendi muito bem como montar a sua solução.
Meu script está da seguinte forma:

Estagiarios:
LOAD idPessoal,
if(Status='ATIVO',Nome) as [Nome Ativo],
if(Status='INATIVO',Nome) as [Nome Inativo],
Lotacao,
if(Status='ATIVO',Matricula) as [Matricula Ativo],
if(Status='INATIVO',Matricula) as [Matricula Inativo],
Cargo,
Especialidade,
Supervisor_Estagiario,
InstituicaoEnsino,
Semestre,
DataDesligCargo,
Month(DataDesligCargo) as [Mês Desligamento],
YearName(DataDesligCargo) as [Ano desligamento],
TurnoEstagio,
Status,
formaDesligmento,
QtdContratos,
DataInicioContrato1,
DataTerminoContrato1,
DataInicioContrato2,
DataTerminoContrato2,
DataInicioContrato3,
DataTerminoContrato3,
DataInicioContrato4,
DataTerminoContrato4,

FROM
[..\Dados\estagiarios.qvd]
(qvd);

Thiago_Justen_

É sempre um prazer dar um help aqui. Foi assim que aprendi boa parte do que sei e ainda aprendo.

Vamos lá, vou usar teu script mesmo pra te propor a alteração:

Estagiarios:

Load

*,

If(Max_Vencimento < (Today()+21), 'Vence em 20 dias',

     If(Max_Vencimento > (Today()+20) and Max_Vencimento < (Today()+61),

           'Vence em 60 dias', 'Vence em 90 dias'

      )

)                        As 'Vence em x Dias';


LOAD idPessoal,
if(Status='ATIVO',Nome) as [Nome Ativo],
if(Status='INATIVO',Nome) as [Nome Inativo],
Lotacao,
if(Status='ATIVO',Matricula) as [Matricula Ativo],
if(Status='INATIVO',Matricula) as [Matricula Inativo],
Cargo,
Especialidade,
Supervisor_Estagiario,
InstituicaoEnsino,
Semestre,
DataDesligCargo,
Month(DataDesligCargo) as [Mês Desligamento],
YearName(DataDesligCargo) as [Ano desligamento],
TurnoEstagio,
Status,
formaDesligmento,
QtdContratos,
DataInicioContrato1,
DataTerminoContrato1,
DataInicioContrato2,
DataTerminoContrato2,
DataInicioContrato3,
DataTerminoContrato3,
DataInicioContrato4,
DataTerminoContrato4,

Date(RangeMax(DataTerminoContrato1,DataTerminoContrato2,DataTerminoContrato3,DataTerminoContrato4)) as Max_Vencimento
FROM
[..\Dados\estagiarios.qvd]
(qvd);

 

Dá uma testada e verifica se te ajuda de alguma forma.

 

Abs e Sucesso!!

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
Jônatas
Contributor III
Contributor III
Author

@Thiago_Justen_ , já implementei a sua solução e funcionou perfeitamente! 

Muito obrigado pela grande ajuda!! 

Sucesso!!  

Thiago_Justen_

Imagina @Jônatas, precisando é só chamar. E não se acanhe em mandar mensagem no WhatsApp caso tenha urgência e eu não veja por aqui.

Abs e Sucesso!!

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago