Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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.
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?
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:
A expressão da tabela dinâmica é:
Sum(Aggr(Count([cliven-documento]),[cliven-codEmp],[cliven-codLocal],[cliven-canalVda],[cliven-ano],[cliven-mes]))
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?
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.
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.
Luciano, muito obrigado pela ajuda. Vou tentar fazer o que você está sugerindo.
Abraço.
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
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).
Walter, fiz um teste simples e acredito que o problema seja a sua expressão.
Dá uma olhada nos anexos.