Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
guilherme_perei
Contributor III
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?

Labels (2)
3 Replies
maiconmello
Creator III
Creator III

Guilherme, mande o modelo se puder.

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

lucianosv
Specialist
Specialist

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.

cesaraccardi
Specialist
Specialist

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