Qlik Community

Brasil

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.

 

4 Solutions

Accepted Solutions
TiagoCardoso
Creator II
Creator II

Bom dia.

Pode tentar:

FIRSTSORTEDVALUE(DISTINCT HistoricoNota, -Data)

Não esqueça do sinal de menos, para mudar a clasificação para o mais recente.

View solution in original post

TiagoCardoso
Creator II
Creator II

Boa noite, esse erro é porque você está tentando utilizar uma função de agregação para fazer determinado filtro.

Faça na carga do script, vai simplificar sua vida.

 

TABELA1:
LOAD *, FIRSTSORTEDVALUE(DISTINCT historico_saude_clientes, -datas_historico) AS Histório
FROM ...
GROUP BY (precisa colocar porque esa função é de agregaçao);


TABELA2:
LOAD *, IF(Histório <=0.5, 'Baixa'....) AS Campo
RESIDENT TABELA1;

View solution in original post

TiagoCardoso
Creator II
Creator II

Eu coloquei o * para simular, pois eu não sei quais campos existem no seu modelo. 
O intuito não era atrapalhar.

 

Tira o * e coloca explicitamente seus campos, ainda mais porque é carga de planilha, e já algumas vezes percebi que isso não funciona.

 

Faz exatamente igual a um SQL com o group by no final 

 

TABELA1_teste:
LOAD nome_matriz,org_city, FIRSTSORTEDVALUE(DISTINCT saude_capex, -data_historico) AS Histório_saude_capex
FROM [lib://Compartilhado:OneDrive - marcelo/Qlik Sense/Clientes CAPEX/Histórico Saúde - CAPEX.xlsx]
(ooxml, embedded labels, table is [Clientex CAPEX])
GROUP BY nome_matriz,org_city;

View solution in original post

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!

View solution in original post

17 Replies
TiagoCardoso
Creator II
Creator II

Bom dia.

Pode tentar:

FIRSTSORTEDVALUE(DISTINCT HistoricoNota, -Data)

Não esqueça do sinal de menos, para mudar a clasificação para o mais recente.

MarceloK
Creator
Creator
Author

Muitíssimo obrigado!!!!! Deu certo!

MarceloK
Creator
Creator
Author

Amigo, será que você conseguiria me ajudar com mais uma coisa?

Estou tentando fazer um filtro com os valores, da seguinte forma:

IF (
FIRSTSORTEDVALUE(DISTINCT historico_saude_clientes, -datas_historico) <= 0.5, 'Baixa',

IF (
FIRSTSORTEDVALUE(DISTINCT historico_saude_clientes, -datas_historico) <= 0.8, 'Media','Alta'))

 

Porém ao inserir isso no filtro, estou recebendo o erro de dimensão inválida. Tem como eu usar isso em um filtro?

 

TiagoCardoso
Creator II
Creator II

Boa noite, esse erro é porque você está tentando utilizar uma função de agregação para fazer determinado filtro.

Faça na carga do script, vai simplificar sua vida.

 

TABELA1:
LOAD *, FIRSTSORTEDVALUE(DISTINCT historico_saude_clientes, -datas_historico) AS Histório
FROM ...
GROUP BY (precisa colocar porque esa função é de agregaçao);


TABELA2:
LOAD *, IF(Histório <=0.5, 'Baixa'....) AS Campo
RESIDENT TABELA1;
MarceloK
Creator
Creator
Author

Amigo, desculpe a demora para lhe perguntar isso, mas ali na linha 3 da TABELA1, o FROM ... eu coloco o caminho do meu arquivo, certo?

 

Outra coisa, esse group by () eu posso colocar qualquer coisa dentro do parenteses? é que estou recebendo uns erros

TiagoCardoso
Creator II
Creator II

o FROM é o caminho do seu arquivo.

No group by você coloca todos os campos da sua tabela, exceto os campos que estão sendo agregados pela func 

FIRSTSORTEDVALUE

 a

MarceloK
Creator
Creator
Author

Eu não sei oque estou errando, pois agora recebo erro de expressão inválida 😞

historico_clientes:
LOAD
saude_capex,
nome_matriz,
org_city,
data_historico
FROM [lib://Compartilhado:OneDrive - marcelo/Qlik Sense/Clientes CAPEX/Histórico Saúde - CAPEX.xlsx]
(ooxml, embedded labels, table is [Clientex CAPEX]);

TABELA1_teste:
LOAD *, FIRSTSORTEDVALUE(DISTINCT saude_capex, -data_historico) AS Histório_saude_capex
FROM [lib://Compartilhado:OneDrive - marcelo/Qlik Sense/Clientes CAPEX/Histórico Saúde - CAPEX.xlsx]
(ooxml, embedded labels, table is [Clientex CAPEX])
GROUP BY nome_matriz,org_city;

 

Não seria da forma acima?

 

Esse é o erro que recebo:

 

Ocorreram os seguintes erros:
Invalid expression
 
O erro ocorreu aqui:
TABELA1_teste: LOAD *, FIRSTSORTEDVALUE(DISTINCT saude_capex, -data_historico) AS Histório_saude_capex FROM [lib://Compartilhado:OneDrive - marcelo/Qlik Sense/Clientes CAPEX/Histórico Saúde - CAPEX.xlsx] (ooxml, embedded labels, table is ***) GROUP BY nome_matriz,org_city
 
Ocorreram os seguintes erros:
Invalid expression
TiagoCardoso
Creator II
Creator II

Eu coloquei o * para simular, pois eu não sei quais campos existem no seu modelo. 
O intuito não era atrapalhar.

 

Tira o * e coloca explicitamente seus campos, ainda mais porque é carga de planilha, e já algumas vezes percebi que isso não funciona.

 

Faz exatamente igual a um SQL com o group by no final 

 

TABELA1_teste:
LOAD nome_matriz,org_city, FIRSTSORTEDVALUE(DISTINCT saude_capex, -data_historico) AS Histório_saude_capex
FROM [lib://Compartilhado:OneDrive - marcelo/Qlik Sense/Clientes CAPEX/Histórico Saúde - CAPEX.xlsx]
(ooxml, embedded labels, table is [Clientex CAPEX])
GROUP BY nome_matriz,org_city;

MarceloK
Creator
Creator
Author

DEUUUUUUUU, muito obrigado!!!