Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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:
Cliente | Cidade | Data | HistoricoNota |
A&S | Jaguariúna | 28/01/2021 | 10 |
Nestlé | Jaguariúna | 02/02/2021 | 10 |
Nestlé | São Paulo | 15/03/2021 | 5 |
Nestlé | Araçatuba | 16/03/2021 | 5 |
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.
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"
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.
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!
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.
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.
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;
Então amigo, sabe oque eu fiz? sei que não é o ideal, mas copiei a chave do campo de cima
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?
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.