Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
MarceloK
Creator
Creator

Pegar informações da data mais atual

Olá pessoal, como eu faço para pegar uma informação mais atual, usando como base a data? Por exemplo:

Tenho vários clientes e dentro desses vários clientes, datas:

ClienteCidadeDataHistoricoNota
A&SJaguariúna28/01/202110
NestléJaguariúna02/02/202110
NestléSão Paulo15/03/20215
NestléAraçatuba16/03/20215

No caso, eu quero a informação da "HistoricoNota" sempre a mais atual possível (não me importa se a nota é maior ou menor, só quero que seja a mais atual possível).

Como eu faria isso no qlik?

Porque eu só sei trazer o MAX(HistoricoNota) , mas não consigo a informação mais atual.

 

17 Replies
MarceloK
Creator
Creator
Author

Amigo, muitíssimo obrigado pela sua ajuda até então! tem me ajudado muito.

 

Posso tirar mais uma duvida? Como eu transformaria essa função (medida) em uma dimensão?

IF((
Count ( distinct if ( csat_1 >= 4 , ProjetoOnboarding)) +
Count ( distinct if ( csat_2 >= 4 , ProjetoOnboarding)) +
Count ( distinct if ( csat_3 >= 4 , ProjetoOnboarding)) +
Count ( distinct if ( csat_4 >= 4 , ProjetoOnboarding)) +
Count ( distinct if ( csat_5 >= 4 , ProjetoOnboarding))
)
/
(
Count ( distinct if ( csat_1 <> null() , ProjetoOnboarding)) +
Count ( distinct if ( csat_2 <> null() , ProjetoOnboarding)) +
Count ( distinct if ( csat_3 <> null() , ProjetoOnboarding)) +
Count ( distinct if ( csat_4 <> null() , ProjetoOnboarding)) +
Count ( distinct if ( csat_5 <> null() , ProjetoOnboarding))) <0.5, 'Baixa',

IF((
Count ( distinct if ( csat_1 >= 4 , ProjetoOnboarding)) +
Count ( distinct if ( csat_2 >= 4 , ProjetoOnboarding)) +
Count ( distinct if ( csat_3 >= 4 , ProjetoOnboarding)) +
Count ( distinct if ( csat_4 >= 4 , ProjetoOnboarding)) +
Count ( distinct if ( csat_5 >= 4 , ProjetoOnboarding))
)
/
(
Count ( distinct if ( csat_1 <> null() , ProjetoOnboarding)) +
Count ( distinct if ( csat_2 <> null() , ProjetoOnboarding)) +
Count ( distinct if ( csat_3 <> null() , ProjetoOnboarding)) +
Count ( distinct if ( csat_4 <> null() , ProjetoOnboarding)) +
Count ( distinct if ( csat_5 <> null() , ProjetoOnboarding))) <0.69, 'Media',

IF((
Count ( distinct if ( csat_1 >= 4 , ProjetoOnboarding)) +
Count ( distinct if ( csat_2 >= 4 , ProjetoOnboarding)) +
Count ( distinct if ( csat_3 >= 4 , ProjetoOnboarding)) +
Count ( distinct if ( csat_4 >= 4 , ProjetoOnboarding)) +
Count ( distinct if ( csat_5 >= 4 , ProjetoOnboarding))
)
/
(
Count ( distinct if ( csat_1 <> null() , ProjetoOnboarding)) +
Count ( distinct if ( csat_2 <> null() , ProjetoOnboarding)) +
Count ( distinct if ( csat_3 <> null() , ProjetoOnboarding)) +
Count ( distinct if ( csat_4 <> null() , ProjetoOnboarding)) +
Count ( distinct if ( csat_5 <> null() , ProjetoOnboarding))) >=0.70, 'Alta','Sem nota')))

 

Resumindo o código: Ele me trás a informação "Baixa" "Media" "Alta" ou "Sem nota"

TiagoCardoso
Creator II
Creator II

Marcelo, boa tarde.

Sou suspeito para falar, já que campos novos eu crio via script.

Sugiro que faça o mesmo para utilizar o campo dentro da sua aplicação.

MarceloK
Creator
Creator
Author

Foi ignorância minha! Eu deveria ter primeiro testado isso, eu nem sabia que dava para colocar isso no script.

 

Muito obrigado pela dica, farei isso!

MarceloK
Creator
Creator
Author

Oi amigo, eu de novo hehe, será que tu consegue me dar mais uma ajuda? Criei o código, e até a parte do Group by, está funcionando certinho, porém quando eu crio o filtro não funciona. independente do valor que eu escolha, o qlik me trás todos os resultados de clientes... oque estou fazendo de errado?

 

historico_metricas_clientes_capex:
LOAD

nome_matriz,
org_city,

FIRSTSORTEDVALUE(DISTINCT Saude, -data_historico) as Historico_da_saude

FROM [lib://Compartilhado:OneDrive - marcelokniss/Qlik Sense/Clientes CAPEX/Histórico Saúde - CAPEX.xlsx]
(ooxml, embedded labels, table is [Clientes CAPEX])
Group By nome_matriz, org_city;     //até aqui vai de boa, ele está me trazendo o resultado mais atual


nota_clientes_capex:

LOAD
IF(Historico_da_saude < 0.59, 'Baixa',
IF(Historico_da_saude > 0.59 and Historico_da_saude <0.80,'Média',
IF(Historico_da_saude > 0.80, 'Alta')))) as NotaClientesCapex //esse filtro não está funcionando
RESIDENT historico_metricas_clientes_capex;

 

O problema é que meu filtro NotaClientesCapex não funciona. Quando eu clico no filtro para ele me trazer os clientes da determinada saúde, ele simplesmente me trás todos os resultados, independente do tipo de saude que eu escolha.

 

TiagoCardoso
Creator II
Creator II

Boa noite!

 

Cara, quando você faz o First.... e gera a tabela, quais são os dados que ficam no campo *Historico_da_saude*?

 

É bom dar uma olhada também se ele não está representado como texto.

 

Verifique esses pontos antes de rodar a tabela de baixo com os IFs.

TiagoCardoso
Creator II
Creator II

Outra coisa, pelo o que vi, é que mesmo que seja gerado o campo, você isolou a tabela, sugiro dar um left join na tabela de cima para fazer a criação desse campo e deixar ele devidamente associado, ou para simplificar também pode tentar o seguinte:

LOAD
     *,
     IF(Historico_da_saude < 0.59, 'Baixa',
     IF(Historico_da_saude > 0.59 and Historico_da_saude <0.80,'Média',
     IF(Historico_da_saude > 0.80, 'Alta')))) as NotaClientesCapex 
;
LOAD
     nome_matriz,
     org_city,
     FIRSTSORTEDVALUE(DISTINCT Saude, -data_historico) as Historico_da_saude
FROM [lib://Compartilhado:OneDrive - marcelokniss/Qlik Sense/Clientes CAPEX/Histórico Saúde - CAPEX.xlsx]
(ooxml, embedded labels, table is [Clientes CAPEX])
Group By nome_matriz, org_city;
MarceloK
Creator
Creator
Author

Então amigo, sabe oque eu fiz? sei que não é o ideal, mas copiei a chave do campo de cima

MarceloK_0-1625053550636.png

 

não sei se está certo meu raciocínio, mas pelo que entendi o filtro não estava funcionando pois não tinha alguma chave relacionada no filtro...

 

A tua ideia é inverter a tabela? trazer o filtro primeiro e depois os FIRST?

TiagoCardoso
Creator II
Creator II

Se não entendeu o que fiz, esquece, vai se confundir ainda mais.

Continua com o RESIDENT e deixa as chaves, senão não funcionará.

O que vai acontecer no seu caso é criar uma chave sintética (não é errado, mas não é bom manter), que pode ser resolvido juntando os dois campos e criando um novo só com a finalidade de ser chave.