Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Relação entre tabelas

Boa tarde,

Estou com o seguinte problema: Eu tenho uma tabela com as vendas efetuadas nas filiais. Uma outra tabela que me traz os clientes carteirizados, ou seja, a carteira de clientes dos vendedores. Eu preciso calcular a quantidade de clientes carteirizados por filial/canal de vendas e mês e desses clientes, a quantidade de clientes ativados, ou seja, clientes que tiveram um volume de compras acima de um determinado valor na filial/mes, isso tudo em uma única tabela dinâmica. O problema que estou encontrando é que  quando eu conto os clientes carteirizados, ele retorna somente aqueles clientes que compraram com a gente, em função do relacionamento entre as duas tabelas (chave: filial/canal de vendas/CNPJ do cliente/Cod. Vendedor/ano/mes). Eu gostaria que ele  trouxesse todos os clientes, inclusive aqueles que não tiveram compras na filial, mas respeitando o filtro Filial/Canal de vendas/Ano/Mês . Isso é possível?

Obrigado,

Walter.

Labels (3)
11 Replies
lucianosv
Specialist
Specialist

Bom dia.

Como você fez a amarração? Você usou Left Join? Se esse for o caso, você não conseguirá trazer os clientes sem venda.

Você pode postar o qvw?

Not applicable
Author

Bom dia Luciano. Obrigado pelo apoio.

A tabela de movimentação e a tabela de carteirização se relacionam através do campo %CHAVE_HIST_CLIVEN, conforme imagem abaixo:

Tabela de Carteirização:

ScreenHunter_01 Oct. 31 10.25.gif

A expressão da tabela dinâmica é:

Sum(Aggr(Count([cliven-documento]),[cliven-codEmp],[cliven-codLocal],[cliven-canalVda],[cliven-ano],[cliven-mes]))

lucianosv
Specialist
Specialist

Walter, o seu problema principal é que você filtra por campos que formam a chave.

Como você não monta chave para os clientes sem compra, nunca mostrará dessa forma.

Na teoria, você teria que completar a tabela de vendas com valores zerados para os clientes sem vendas.

Você pode pelo menos colar no comentário os loads das duas tabelas?

Not applicable
Author

Luciano, infelizmente não vou poder enviar os loads das tabelas....política da empresa. Como eu faço para completar a tabela? Por favor, você poderia simular em 2 tabelas quaisquer esta operação? Já tentei de todas as formas que eu sei fazer isso e confesso que estou tomando uma surra....

Valeu.

lucianosv
Specialist
Specialist

Fica um pouco difícil sem os loads, mas basicamente eu faria assim:

Fazer o load de vendas.

Fazer o load de clientes HISTCLIVEN com left keep na tabela vendas, duplicando a chave de amarração:

Você criará as chaves %CHAVE_HIST_CLIVEN e %CHAVE_HIST_CLIVEN1 com o mesmo conteúdo.

Depois disso irá reler o qvd de clientes concatenando na leitura anterior de clientes(HISTCLIVEN) utilizando a cláusula de where not exists(%CHAVE_HIST_CLIVEN1).


Acredito que o passo acima complete o seu cadastro. Talvez depois disso você precise alterar a expressão.


Depois vc coloca:

Drop %CHAVE_HIST_CLIVEN1 from HISTCLIVEN;

Seria legal você criar uma tabela simples com o qvw como está(usando informações das duas tabelas)  para ter certeza que os dados não estão realmente na nuvem de dados.

Se não estiverem, vc realmente terá que completar os clientes.

Not applicable
Author

Luciano, muito obrigado pela ajuda. Vou tentar fazer o que você está sugerindo.

Abraço.

lucianosv
Specialist
Specialist

Faça primeiro o teste com a tabela simples.

Em 31/10/2014 12:29, Walter Gosdzinski Jr escreveu:

QLIK COMMUNITY

RELAÇÃO ENTRE TABELAS

resposta de Walter Gosdzinski Jr em Qlik Brasil - Visualize a discussão completa

lucianosv
Specialist
Specialist

Você pode também tentar fazer assim:


Ler a tabela de clientes.

Fazer o concatenate só da chave(%CHAVE_HIST_CLIVEN) da tabela de vendas nessa tabela utilizando a cláusula de where not exists(%CHAVE_HIST_CLIVEN).

lucianosv
Specialist
Specialist

Walter, fiz um teste simples e acredito que o problema seja a sua expressão.

Dá uma olhada nos anexos.