Skip to main content
Announcements
Introducing a new Enhanced File Management feature in Qlik Cloud! GET THE DETAILS!
cancel
Showing results for 
Search instead for 
Did you mean: 
lucasx15
Contributor III
Contributor III

Criar flag dos dois últimos meses

Preciso criar um campo de flag para clientes que usaram o mesmo produto nos últimos dois meses.


no meu load, criei uma tabela temporária e pensei em usar a função peek, para ela verificar e criar a flag para mim. No entanto, não está funcionando:

 

TEMP__1:
LOAD NR_CLIENT,
	 DT_INT_DISP,
	 DT_FINISH_DISP,
	 RowNo()
RESIDENT CLIENT_PRODUCT_DISP
WHERE NR_SEQ_PRODUCT=1
ORDER BY NR_CLIENT,
		 DT_INT_DISP ASC;


TEMP_2:
LOAD NR_CLIENT,
	 DT_INT_DISP,
	 DT_FINISH_DISP,
	 IF(NR_CLIENT=PEEK(NR_CLIENT),
		IF(DT_INT_DISP-PEEK(DT_FINISH_DISP),-2)'YES','NO'),'NO') AS FL_CLIENT_2,
		ROWNO(),
		Resident TMP_1
Order by NR_CLIENT, 
		 DT_INT_DISP ASC;

 

Labels (1)
3 Replies
ThiagoCN
Contributor III
Contributor III

Ola

imagino algo assim

 

TEMP__1:
LOAD NR_CLIENT,
	 DT_INT_DISP,
	 ProductId
RESIDENT CLIENT_PRODUCT_DISP
WHERE NR_SEQ_PRODUCT=1
ORDER BY ProductId, NR_CLIENT, DT_INT_DISP ASC;

 

Olha nesse load se voce tem Produtos, depois cliente, depois a data

ai voce pode fazer algo assim:

 

Flag_:

LOAD

Product, NR_CLIENT, DT_INT_DISP
If(Previous(ProductID) = ProductId , And Previous(NR_CLIENT) = NR_CLIENT 

//Espero que seja data cheia

And Floor(DT_INT_DISP) - Previous(Floor(DT_INT_DISP) )   < 31 , 1 ,0 ) as Flag_usando_mais_2x

Resident  TEMP__1

 

 

claro que tu pode fazer um Loop e olhando se count do product agregado por Client e maior que 2 em loop
 

lucasx15
Contributor III
Contributor III
Author

Oi, Thiago. Obrigado pela resposta.  o campo "ProductId" seria referente ao que? Pois na minha carga, o NR_CLIENT é a minha chave primária.  o campo DT_INT_DISP é a data da inicio e o campo DT_FINISH_DISP é a data da finalização. o campo NR_SEQ_PRODUCT=1 é o tipo de produto que o cliente consumiu.

 

ThiagoCN
Contributor III
Contributor III

Ola, 
No Caso eu coloquei um exemplo, uma ideia de como resolver, nao a solucao exata.

voce precisa do id do produto para pode orderna seu dados corretamente
Data de finalizacao nao interessa nessa sua analise, para criar o flag se produto foi pedido mais de uma,
Qual o sentindo de ter a data finalizacao para verificar se produto foi soliitado mais de uma vez?
Nao somente isso.Como voce vai ordernar pra saber se produto foi  solitiado mais de uma vez sem o Id do produto ?
Seria como pedir uma banana split sem banana, nao tem como.

Campo princiapais para sua analise sao: Id do Cliente , Produto e Data de Solicitacao, sem esse campos voces nao consegue criar esse flag.

o que tem dentro dessa Chave primaria, Id do cliente?