Skip to main content
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