Qlik Community

Qlik Brasil

Welcome to the group for Brazil users. .All discussions will be in Portuguese.

guilherme_perei
New Contributor III

Diferença de dias entre uma data e outra

Boa Tarde.

Estou com uma dificuldade em identificar os clientes que bloquearam um contrato e assinaram
novamente, e, que a data do bloqueio e do novo contrato tenha no máximo 30 dias de diferença.
Para isso eu usei a seguinte lógica:

Ordenei os registros pelo código da matricula e numero de gravação(Recno), peguei a data do

bloqueio anterior utilizando a função previous() e subtraí essa data da data de inclusão. Até aí

tranquilo, o problema é que o primeiro contrato de cada matrícula vida está fazendo a mesma

subtração com o bloqueio do registro anterior. Abaixo envio um print dos registros.

Image 128.jpg

Repare que nesta tabela temos duas Matrículas vida, 48261 e 48262. Na data de bloqueio

anterior da 48262 está a data de bloqueio da 48261, neste caso, por exemplo, a data de

bloqueio anterior do primeiro registro de cada matrícula deveria ser nula, pois é o primeiro

contrato de cada uma delas. Abaixo o Script:

Image 127.jpg

Eu preciso fazer este cálculo somente a partir do segundo registro, pois o primeiro contrato de

cada matrícula não possui data de bloqueio anterior. Existe alguma forma de fazer isso no script

ou na expressão?

3 Replies
maiconmello
Contributor III

Re: Diferença de dias entre uma data e outra

Guilherme, mande o modelo se puder.

e um excel como deveria ficar, assim fica mais fácil para entender.

lucianosv
Valued Contributor

Re: Diferença de dias entre uma data e outra

Faz assim:

If [Chave Usuário]=Previous([Chave Usuário]) ...

Faz o cálculo só a partir da segunda linha.

Estou considerando [Chave Usuário] como quebra. A leitura deve estar ordenada por ele e pelas datas.

Highlighted
cesaraccardi
Valued Contributor

Re: Diferença de dias entre uma data e outra

Ola Guilherme,

Como sugerido pelo Luciano, voce pode adicionar uma condicao no calculo dos dias para que nao calcule quando o registro anterior for de uma matricula diferente:

if([Matricula Vida] = previous([Matricula Vida]), [Data Inclusao do Usuario] - previous([Data do Bloqueio]), 0) asTotal_Dias