Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
talesdejesus
Contributor III
Contributor III

Registros da Linha Anterior

Boa Tarde,

Estou com uma dificuldade de pegar registros anteriores ou entre períodos de dados.

Ex :

Tenho uma Tabela com

Data                    Evidencia

01/01/2017          1

01/02/2017          0

01/03/2017          1

01/04/2017          0

01/05/2017          0

01/06/2017          0

Preciso fazer que depois que a coluna evidencia completa 2 registros 1 a partir de mês seguinte conte como 1 tbm

ficaria assim

Data                    Evidencia

01/01/2017          1

01/02/2017          0

01/03/2017          1

01/04/2017          1

01/05/2017          1

01/06/2017          1

.

.

.

01/12/2017          1

Podem me ajudar?

Muito Obrigado!

Labels (2)
1 Solution

Accepted Solutions
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo, segue;

Tab_Dados: //Dados de Exemplo (Alterar para a sua fonte de dados)

Load * Inline [

Data,Evidencia

01/01/2017,1

01/02/2017,0

01/03/2017,1

01/04/2017,0

01/05/2017,0

01/06/2017,0

];

Tab_Temp:   

Load

    Data,

    RangeSum(Evidencia,Peek(QtdEvidencia)) As 'QtdEvidencia' //Acumula valor de Evidencia

Resident Tab_Dados;

Tab_Temp2:

Load

     FirstSortedValue(Data,If(QtdEvidencia=2,Data)) As 'UltDtEvidencia' //Posição da Data para Evidencia=2

Resident Tab_Temp;

LET vUltDtEvidencia = Peek('UltDtEvidencia');

Tab_Resultado:

NoConcatenate

Load

     Data,

     If(Data>='$(vUltDtEvidencia)',1,Evidencia) As 'Evidencia'

Resident Tab_Dados;

Drop Tables Tab_Dados,Tab_Temp,Tab_Temp2;

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti

View solution in original post

7 Replies
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo, segue;

Tab_Dados: //Dados de Exemplo (Alterar para a sua fonte de dados)

Load * Inline [

Data,Evidencia

01/01/2017,1

01/02/2017,0

01/03/2017,1

01/04/2017,0

01/05/2017,0

01/06/2017,0

];

Tab_Temp:   

Load

    Data,

    RangeSum(Evidencia,Peek(QtdEvidencia)) As 'QtdEvidencia' //Acumula valor de Evidencia

Resident Tab_Dados;

Tab_Temp2:

Load

     FirstSortedValue(Data,If(QtdEvidencia=2,Data)) As 'UltDtEvidencia' //Posição da Data para Evidencia=2

Resident Tab_Temp;

LET vUltDtEvidencia = Peek('UltDtEvidencia');

Tab_Resultado:

NoConcatenate

Load

     Data,

     If(Data>='$(vUltDtEvidencia)',1,Evidencia) As 'Evidencia'

Resident Tab_Dados;

Drop Tables Tab_Dados,Tab_Temp,Tab_Temp2;

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
Thiago_Justen_

Excelente solução mario.sergio.ti

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

Valeu thiago.justen

Abraço.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
talesdejesus
Contributor III
Contributor III
Author

Obrigado Mario, ainda não testei a solução. Fiz de outra maneira via set analysis, mas vou testar como você fez. Obrigado pela sua resposta. Abraço!

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Blz...

Lembre-se, o que puder manter de lógica em Script de carga, é melhor... Simplificando as expressões na aplicação final. E muitas vezes economizando recursos de Hardware.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
pablolabbe
Luminary Alumni
Luminary Alumni

Ótimo exemplo mario.sergio.ti!

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Obrigado pelo apoio pablolabbe

Abraço.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti