Qlik Community

Brasil

Announcements
Read about the latest Qlik Community enhancements on the Community News blog!
cancel
Showing results for 
Search instead for 
Did you mean: 
Jônatas
Contributor II
Contributor II

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
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
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
WhatsApp: 24 98152-1675
Skype: justen.thiago
Jônatas
Contributor II
Contributor II
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
WhatsApp: 24 98152-1675
Skype: justen.thiago

View solution in original post

Jônatas
Contributor II
Contributor II
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
WhatsApp: 24 98152-1675
Skype: justen.thiago