Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
jordansoares
Contributor III
Contributor III

Contar quantos produtos tem o preço maior que os concorrentes

Estou com uma situação que não consigo encontra a solução.

Tenho uma tabela onde armazena os preços de venda dos supermercados concorrentes, esses preços eu obtenho através de uma API disponibilizada pela SEFAZ do meu estado(Segue anexo a TABELA EXEMPLO para que entendam como fica o meu .qvd após obter a consulta pela API).

Com base nessa consulta, eu precisa saber quais os produtos da minha loja estão com o preço acima do menor preço entre os concorrentes, comparando com o meu cadastro de produtos(Segue anexo a TABELA MEU CADASTRO com os meus produtos/preços).

Estava tentando chegar ao resultado, em um KPI, com a seguinte Expressão:

Count({<[meu_preco]={">$(=Min(preco_concorrentes))"}>}distinct(codigo_barras))

mas essa expressão não está dando certo, ele compara os meus preços com todos os preços concorrentes, independente do código de barras, trazendo um resultado equivocado.

Alguém tem ideia de como eu poderia resolver essa questão?

 

1 Solution

Accepted Solutions
RafaMartins
Creator II
Creator II

Boa tarde amigo,

O que eu faria nesse caso seria criar um campo calculado para fazer uma flag dizendo se o preço é maior ou não.

TABELA1:
LOAD
CODIGO_BARRAS,
DESCRICAO_PRODUTO as [DESCRIÇÃO - CONCORRENTES],
PRECO_CONCORRENTES,
LOJA
FROM [lib://teste/TABELA EXEMPLO.xlsx]
(ooxml, embedded labels, table is Planilha1);

//=========================================================//

TABELA2:
Join load
CODIGO_INTERNO,
DESCRICAO_PRODUTO,
MEU_PRECO,
CODIGO_BARRAS

FROM [lib://teste/TABELA MEU CADASTRO.xlsx]
(ooxml, embedded labels, table is Planilha1);


Load
*,
If(MEU_PRECO > PRECO_CONCORRENTES,1,0) as flag
Resident TABELA1;
Drop Table TABELA1;

Com esse campo você pode usar a expressão 

count({<flag={'1'}>} distinct CODIGO_BARRAS)

View solution in original post

2 Replies
RafaMartins
Creator II
Creator II

Boa tarde amigo,

O que eu faria nesse caso seria criar um campo calculado para fazer uma flag dizendo se o preço é maior ou não.

TABELA1:
LOAD
CODIGO_BARRAS,
DESCRICAO_PRODUTO as [DESCRIÇÃO - CONCORRENTES],
PRECO_CONCORRENTES,
LOJA
FROM [lib://teste/TABELA EXEMPLO.xlsx]
(ooxml, embedded labels, table is Planilha1);

//=========================================================//

TABELA2:
Join load
CODIGO_INTERNO,
DESCRICAO_PRODUTO,
MEU_PRECO,
CODIGO_BARRAS

FROM [lib://teste/TABELA MEU CADASTRO.xlsx]
(ooxml, embedded labels, table is Planilha1);


Load
*,
If(MEU_PRECO > PRECO_CONCORRENTES,1,0) as flag
Resident TABELA1;
Drop Table TABELA1;

Com esse campo você pode usar a expressão 

count({<flag={'1'}>} distinct CODIGO_BARRAS)
jordansoares
Contributor III
Contributor III
Author

Solução Perfeita! Deu certo! Muito obrigado.