Ir para conteúdo
  • 0

Lookupvalue em 2 tabelas fato


Jeff
Ir para solução Solucionado por Joao Raulino ,

Pergunta

  • Alunos

Olá pessoal! 
Eu tenho uma tabela fVendas por numero_pedido e data_repasse. São vendas que ocorrem e-commerce e bilheteria. Estas linhas se repetem de acordo com a quantidade de parcelas que aquela compra foi efetuada. Venda em 1x (a vista, credito a vista, dinheiro) retorna 1 linha. Vendas parceladas em 2x (credito parcelado) são 2 linhas e assim até o limite máximo de 6 parcelas.
Quando há um cancelamento de determinada venda um novo pedido é gerado e os valores são lançados em apenas 1 linha com valor total e sinais opostos a fim de zerar as colunas de valores.

Existe também uma coluna pedido_web que é constante, mas apenas para as vendas online. Quando há uma venda em bilheteria, o valor desta coluna é zero.

Segue exemplo:

image.png.9f4fc79be5f02eb3588d6bbab02e99c8.png

Neste momento montei todas as análises de vendas e está tudo correndo bem.

Mas agora apareceu uma segunda base fVendaVip. Ela registra as mesmas vendas da tabela fVendas. Esta nova base possui 3 colunas de valores, sendo Receita, Serviço VIP e Total. Nesta base, temos as mesmas colunas de numero_pedido e pedido_web. Nesta base tem uma linha única por venda e uma única linha quando há cancelamento.


image.png.8f965525e6664c4a761f92b77bedb371.png


Ponto relevante é: o total da coluna valor da fVendas é igual ao total da coluna Total da fVendaVip, ou seja, a fVendas já considera a venda com Serviço VIP.

O desafio é: preciso criar uma coluna VIP na fVendas para trazer o Serviço VIP correspondente de cada venda. Inclusive quando houver cancelamentos. Assim eu posso expurgar estes valores e construir os visuais apenas usando a tabela fVendas considerando apenas a venda sem este serviço.

O ponto é que como não existe uma coluna com valor único nas 2 bases eu não consigo fazer esta correspondencia. Já tentei usar o RELATED e o LOOKUPVALUE mas sem sucesso.
Pensei em criar uma lista de pedidos distintos e relacionar as 2 tabelas a esta lista. Mas não sei se isso faria sentido.

Existe alguma saída?

Se for necessário, posso enviar um recorte das bases.

Desde já lhes agradeço!


Abs,
Jeff

Editado por Jeff
Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 1
  • Alunos
  • Solução

Fala @Jeff!

Para pegar a parcela máxima de cada pedido é bem simples:

1. Faz um "Group By" por [numero_pedido] incluindo uma coluna [all_rows] com todas as linhas e outra coluna [parcela_max] com o máximo da [parcela]:

image.png.0451152b30f5c1fa136fe978fa40f2c2.png

2. Agora expande só as colunas que você tem interesse:

image.png.2d5b6f43f373829398594491347d0e64.png

image.png.611d46db95372182245fd3829851adbf.png

3. Agora cria uma coluna nova fazendo a divisão da [Servico VIP] pela [parcela_max]:

image.png.23e83eadaf3ced9c71e5bc6fc20fa0c7.png

E voila:

image.png.4ea112390fb967960c87dc0a0dbe3034.png

Tenta ai do teu lado e não esquece de marcar a resposta como melhor solução 😉

Abs!

 

Editado por Joao Raulino
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Suave @Jeff?

Esse tipo de operacao seria melhor feito no Power Query atraves de uma mesclagem de consultas. No teu caso a coluna fVendas[numero_pedido] se relacionaria com a fVendaVip[Pedido - TDL] e a coluna fVendas[data_pedido] se relacionaria com a fVendaVip[Data da Compra]:

Citar

= Table.NestedJoin(fVendas, {"numero_pedido", "data_pedido"}, fVendaVip, {"Pedido - TDL", "Data da Compra"}, "fVendaVip", JoinKind.LeftOuter)

image.png.1cc5f5d23836f2484413b026a840228b.png

O resultado seria uma tabela unica com todas as informacoes que voce precisa:

image.png.98f523678e90ce321f33242508900396.png

Abs!

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Fala @Joao Raulino! Tudo certo?
Obrigado mais uma vez pela ajuda.
Consegui fazer a mescla mas agora preciso ratear as colunas de valor que vieram para a base, de acordo com a quantidade de parcelas.

Tentei usar as funções List.Max e List.Repeat mas não consigo relacionar o número do pedido para que ele pegue o maior parcela e assim divida os valores por ela.

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...