Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bom dia!
Gostaria de ajuda para entender o relacionamento que o qlikview cria entre as tabela e saber como devo proceder para corrigir alguns erros nos dados.
Tenho uma tabela de Situação de Produtos e uma segunda tabela com a Venda por Cliente. A chave do meu modelo é o PRODUTO.
ProdutoSituacao | ||
Produto | Situacao | Qtde |
PROD1 | BLOQUEADO | 15 |
PROD1 | COMPRAR | 20 |
PROD1 | ESTOQUE | 10 |
PROD2 | ESTOQUE | 5 |
PROD2 | COMPRAR | 10 |
PROD3 | BLOQUEADO | 2 |
VendasCliente | ||
Cliente | Produto | QtdeVendaCli |
CLIENTEA | PROD1 | 10 |
CLIENTEB | PROD1 | 5 |
CLIENTEA | PROD2 | 20 |
CLIENTEC | PROD3 | 15 |
Pelo meu modelo, eu posso ter um mesmo produto em diversas situações. Quando coloco estas tabelas juntas no qlikview, as quantidades de vendas e situação ficam duplicados. Eu entendo que isso é por conta da granularidade entre as tabelas que são diferentes.
Porém, qual a melhor forma de lidar com isso?
Obrigado!
Marcílio
Você não poderá juntar essas tabelas com JOIN, o ideal seria trabalhar as informações apenas com a ligação das tabelas através da coluna de produto.
Se preferir, pode junta-las com o CONCATENATE, por exemplo:
Fato:
LOAD
Produto,
Situacao,
Qtde,
'Produto Situação' as Origem
FROM ProdutoSituacao;
CONCATENATE
LOAD
Produto,
Cliente,
QtdeVendaCli as Qtde,
'Vendas Cliente' as Origem
FROM VendasCliente;
No gráfico, você pode referenciar as tabelas através do campo Origem, por exemplo:
SUM({<Origem = {'Produto Situação'}>}Qtde)
ou
SUM({<Origem = {'Vendas Cliente'}>}Qtde)
Marcilio, o ideal seria você trabalhar com as informações na mesma granularidade, o que me parece é que você possui duas tabelas que foram agrupadas de formas diferentes através da mesma origem
Yuri, obrigado pela resposta.
Como devo fazer no caso de não conseguir colocar na mesma granularidade?
Existe alguma técnica para se trabalhar desta forma?
Obrigado!
Você não poderá juntar essas tabelas com JOIN, o ideal seria trabalhar as informações apenas com a ligação das tabelas através da coluna de produto.
Se preferir, pode junta-las com o CONCATENATE, por exemplo:
Fato:
LOAD
Produto,
Situacao,
Qtde,
'Produto Situação' as Origem
FROM ProdutoSituacao;
CONCATENATE
LOAD
Produto,
Cliente,
QtdeVendaCli as Qtde,
'Vendas Cliente' as Origem
FROM VendasCliente;
No gráfico, você pode referenciar as tabelas através do campo Origem, por exemplo:
SUM({<Origem = {'Produto Situação'}>}Qtde)
ou
SUM({<Origem = {'Vendas Cliente'}>}Qtde)
A forma de juntar tudo na mesma tabela para criar uma unica fato, evitando duplicidades por causa da granularidade seria através do concatenate(), mas nem sempre é a melhor solução, se você puder postar a imagem do seu modelo, fica mais fácil de dar um sugestão.
Entendi Yuri!
Vou fazer alguns estudos com o concatenate e ver se consigo colocar todas em uma fato só.
Obrigado!
Rodrigo,
Estou enviando a imagem do meu modelo. Sei que está uma bagunça...algumas fatos, depois de ter lido o post do Yuri, ja me esclareceu como tem que ficar, juntando em uma tabela só.
Vou fazer algumas correções e postar novamente de uma forma mais limpa.
Obrigado!
Rodrigo, dei uma limpada no modelo. Juntei 3 tabelas em uma só.
A granularidade está diferente nas tabelas FatoSituacaoVendas e FatoVendaFase (à direita).
Para resolver o problema de duplicidade por conta da granularidade diferente, tentarei junta-las com o concatenate.
Obrigado!
Marcilio,
No seu caso , eu criaria uma Link table e eliminaria todas as chaves sintéticas (Dicas Qlik - Tonial, Fernando: LinkTable). Pela quantidade de tabelas fato acho que seria melhor do que concatenar tudo.
Sugiro dar uma olhada nesse link tbm Concatenate vs Link Table
Rodrigo e Yuri, obrigado pela ajuda.
Coloquei as tabelas na mesma granularidade e em outros pontos usei o concatenate.
Resolveu meu problema. O modelo ficou mais enxuto.
Abraço!