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

Ajuda com Script

boa tarde! Tenho uma Tabela Seguinte revisado_sim_nao.png

 

Sempre que houver Dados no Campo Data_Revisao, Deve-se repetir os mesmos Dados no Campo Nova_Data, para os documentos de mesmo número, mudando SOMENTE O Último Número. A lógica que estou usando é: 

Se (IsNull ([Nova_Data]), 'Não', 'Sim') as Revisado?

Utilizando Dessa forma, Não está ficando correto! Quando o campo da coluna Nova_Data não tem data, não está marcando com "Não".

Estou utilizando QlikView

Alguém poderia me Ajudar? Obrigado!

1 Solution

Accepted Solutions
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP


Tabela_Tmp:
LOAD
   NumDoc,
   left(NumDoc,8) as NumDoc_Raiz,
   DtRevisao
Inline [
NumDoc ,DtRevisao
223145670 , 10/02/2019
223145671 ,
223145672 ,
800642780 ,
332215140 , 05/06/2019
600558790 ,
60055879 ,
];

Tabela_Final:
LOAD
   NumDoc,
   NumDoc_Raiz,
   DtRevisao,
   if(if(NumDoc_Raiz = Previous(NumDoc_Raiz),Peek(New_Data),DtRevisao) >0,'Sim','Não') as Revisao,
   if(NumDoc_Raiz = Previous(NumDoc_Raiz),Peek(New_Data),DtRevisao) as New_Data
Resident Tabela_Tmp Order by NumDoc_Raiz,NumDoc;
//
Drop Table Tabela_Tmp;

furtado@farolbi.com.br

View solution in original post

15 Replies
victorbertoldo
Contributor II
Contributor II

Não deveria ser?

 

IF(IsNull([Data_Revisao]), 'Não', 'Sim') as Revisado

 

Se for a Nova_Data mesmo, faz o teste com o IF(len(Nova_Data)>0,'Sim','Não') as Revisado.

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Opa....ve se ajuda

 

2019-07-25 23_45_53-QlikView x64 - [F__tmp_New_Data.qvw_].png


Tabela_Tmp:
LOAD
   Num_Documento,
   date#(Data_Revisao,'DD/MM/YYYY hh:mm') as Data_Revisao,
   left(Num_Documento,12) as Num_Documento_Raiz
Inline [
Num_Documento , Data_Revisao
038326GHI0000 ,
038326GHI0001 ,
080041ABX0000 , 22/03/2019 13:00
080041ABX0001 ,
080041ABX0002 ,
080041ABX0003 ,
];

Tabela:
LOAD
   Num_Documento,
   Data_Revisao,
   Num_Documento_Raiz,
   if(Num_Documento_Raiz=Previous(Num_Documento_Raiz),rangemax(peek(Data_Revisao),peek(New_Data)),Data_Revisao) as New_Data
Resident Tabela_Tmp;
//
DROP Table Tabela_Tmp;

 

 

furtado@farolbi.com.br
Jônatas
Contributor III
Contributor III
Author

Bom dia, @afurtado ! Obrigado pela atenção! Ajuda sim e muito, porém preciso que tenha mais uma coluna com um campo de "Revisado", se tiver data no campo New_Data, marcar como revisado, se não, Não Revisado. O problema é que quando não tem data ele não marca como "Não Revisado" põe apenas um '-'. Poderia me ajudar? Obrigado!

Obs: Você me ajudou em outro post a desenvolver essa lógica, funcionou muito bem, porém não consegui acrescentar esse campo de "Não Revisado"

Jônatas
Contributor III
Contributor III
Author

Bom dia, @victorbertoldo !

O resultado foi o mesmo encontrado com outra lógica, dessa forma somente o "Revisado" aparece corretamente quando não é revisado ele aparece "-".

victorbertoldo
Contributor II
Contributor II

Eu fiz o teste dessa maneira e deu certo:

Tabela_Tmp:
LOAD 
    NumDoc,
    left(NumDoc,8)			as NumDoc_Raiz,
    DtRevisao
Inline [
NumDoc    ,DtRevisao
223145670 , 10/02/2019
223145671 ,
223145672 ,
800642780 ,
332215140 , 05/06/2019
600558790 ,
60055879  ,
];

Tb:
Load *,
	if(len(DtRevisao)>0,'Sim','Não') as Revisado;
Load 
	NumDoc,
    NumDoc_Raiz,
    DtRevisao    
Resident Tabela_Tmp;    

Drop Table Tabela_Tmp;

 

Veja se isso atende.

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

2019-07-27 17_24_01-Qlik Sense Desktop.png

furtado@farolbi.com.br
Jônatas
Contributor III
Contributor III
Author

Boa tarde, @afurtado ! Poderia por gentileza me enviar o código por aqui ou o arquivo .qvw? Não consigo abrir essa extensão .qvf

 

Obrigado!!! 

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP


Tabela_Tmp:
LOAD
   NumDoc,
   left(NumDoc,8) as NumDoc_Raiz,
   DtRevisao
Inline [
NumDoc ,DtRevisao
223145670 , 10/02/2019
223145671 ,
223145672 ,
800642780 ,
332215140 , 05/06/2019
600558790 ,
60055879 ,
];

Tabela_Final:
LOAD
   NumDoc,
   NumDoc_Raiz,
   DtRevisao,
   if(if(NumDoc_Raiz = Previous(NumDoc_Raiz),Peek(New_Data),DtRevisao) >0,'Sim','Não') as Revisao,
   if(NumDoc_Raiz = Previous(NumDoc_Raiz),Peek(New_Data),DtRevisao) as New_Data
Resident Tabela_Tmp Order by NumDoc_Raiz,NumDoc;
//
Drop Table Tabela_Tmp;

furtado@farolbi.com.br
Jônatas
Contributor III
Contributor III
Author

Perfeito, @afurtado ! Deu certo! Muito obrigado!!!!