Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Dúvida relacionada a Previous+if

Pessoal, boa tarde.

Me deparei com uma situação que não estou conseguindo resolver:

Tenho uma tabela onde preciso categorizar os clientes conforme a vida dele sendo como critério de categorização, o retorno da propria informação na linha anterior sendo createdon (data de criaçao do registro) e new_idcliente (ID do cliente).

O erro que apresenta é de que não está sendo encontrado o campo Classif.

Valew!

if (      isnull (previous (createdon))

  and (createdon)>0

  and previous(new_idcliente)=new_idcliente

  and ( previous (Classif)='Base Antiga'

  or previous (Classif)='Cancelado'  ),

  'Recuperado',

if ( isnull (previous (createdon) )

  and (createdon)>0

  and previous(new_idcliente)=new_idcliente

  and previous (Classif)='Potencial',

  'Novo',

if ( previous(createdon)>0

  and IsNull(createdon)

  and previous(new_idcliente)=new_idcliente

  and ( previous (Classif)='Base'

  or previous (Classif)='Novo'

  or previous (Classif)='Recuperado' ),

  'Cancelado',

if ( previous(createdon)>0

  and (createdon)>0

  and previous(new_idcliente)=new_idcliente

  and ( previous (Classif)='Novo'

  or previous (Classif)='Base'

  or previous (Classif)='Recuperado' ),

  'Base',

if ( isnull (previous (createdon) )

  and IsNull(createdon)

  and previous(new_idcliente)=new_idcliente

  and ( previous (Classif)='cancelado'

  or previous (Classif)='Base Antiga' ), 

  'Base Antiga',

if ( isnull (previous(createdon) )

  and IsNull(createdon)

  and previous(new_idcliente)=new_idcliente

  and ( previous (Classif)=''

  or previous (Classif)='Potencial' ),

  'Potencial'

)))))) as Classif

1 Solution

Accepted Solutions
fernando_tonial
Partner - Specialist
Partner - Specialist

Olá,

Você deve utiliza a função Peek() no lugar do Previous(), pois com a Função Previous() não é possível fazer a referência ao último registro de um campo que você esta criando nesse momento, o campo "Classif".

Lembre sempre assim:

Campo já existe na tabela, posso utilizar o Previous()

Campo sendo criado nesse Load, sempre devo utilizar o Peek().

Abraços.

Tonial.

Don't Worry, be Qlik.

View solution in original post

2 Replies
fernando_tonial
Partner - Specialist
Partner - Specialist

Olá,

Você deve utiliza a função Peek() no lugar do Previous(), pois com a Função Previous() não é possível fazer a referência ao último registro de um campo que você esta criando nesse momento, o campo "Classif".

Lembre sempre assim:

Campo já existe na tabela, posso utilizar o Previous()

Campo sendo criado nesse Load, sempre devo utilizar o Peek().

Abraços.

Tonial.

Don't Worry, be Qlik.
Not applicable
Author

Obrigado Fernando.