Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Criei uma tabela fato com produto e fornecedor, um pedido pode ter vários produtos e vários fornecedores, mas para cada pedido tenho algumas taxas, essas taxas não são por fornecedor.
Quando calculo a taxa ela está vindo em duplicidade, coloquei distinct mas a performance está ruim, nesse caso como resolveria?
Segue um exemplo do meu modelo:
Boa tarde Isabela.
Fica difícil responder com certeza, pela falta de um modelo do app, mas olhando assim parece que a melhor solução é fazer um LEFT JOIN entre as duas tabelas, assim você terá a taxa de acordo com o pedido e o produto.
Acredito que seu problema esta na ligação da tabela, tente fazer a ligação através de uma chave composta com id_pedido e id_produto.
Ficaria mais ou menos assim:
Fato:
LOAD
id_pedido & '|' & id_produto as chave,
...
...
...
FROM .....
Taxas:
LOAD
id_pedido & '|' & id_produto as chave,
valor_Taxa
FROM .....
Yuri,
Tentei fazer dessa forma, mas na tabela fato eu tenho id_pedido , id_produto e id_fornecedor, para cada id_pedido e id_produto eu tenho varias linhas que se repetem por causa do id_fornecedor, mas a tabela de taxa tenho somente id_produto e id_pedido, não sei se conseguir ser clara.
Mas agradeço a ajuda.
A ligação de sua tabela fato com a tabela de taxa deve ocorrer apenas por id_produto e id_pedido. Fazendo dessa forma, sua expressão poderá ficar: SUM(Valor_Produto*Valor_Taxa)
Se preferir pode fazer o LEFT JOIN entre as duas tabelas e já deixar uma coluna calculando o valor do produto + a taxa.
Não sei se sua tabela de taxas tem data. Se tiver, ou se houver uma forma de colocar a data na tabela de taxa acredito que seria muito interessante vc concatenar as tabelas e ter um campo que diga se é taxa ou pedido. Desta forma vc poderá usar as mesmas dimensões.
Isabela
Conseguiu resolver o problema? Se sim, marque a resposta como correta para ajudar a manter a comunidade organizada.
Boa tarde Isabela
Conseguiu resolver o seu problema? Se sim, por gentileza marque a resposta correta para nos ajudar a manter a comunidade organizada.