Ir para conteúdo
  • 0

Relacionamentos Muitos X Muitos - Duplicando registros


Ir para solução Solucionado por Rodrigo R1 ,

Pergunta

  • Alunos
Postado

Olá,

estou modelando três tabelas (anexo). Primeiro relacionei a tabela "Ambiente_Físico" com a "Func_Amb" e mesclei trazendo a matrícula do funcionário da tabela "Func_Amb" para a "Ambiente_Físico". Com isso, na tabela "Ambiente_Físico" tenho todos os funcionários que pertencem a tal ambiente. Depois disso, relacionei a tabela "Risco" e gerou relacionamento muitos para muitos, pois relacionei com o código do ambiente físico que possui em ambas tabelas e é a única coluna e a correta. O problema é que quando coloco a matrícula do funcionário, ele pega todos os riscos em ambos, fazendo com que o risco de um aparece para o outro e vice-versa. Quando incluí uma tabela auxiliar para não gerar relacionamentos muitos para muitos, ele apresenta um erro ao adicionar a coluna da matrícula.

Resumindo, quero filtrar (segmentação de dados) o ambiente físico e numa tabela saber quais riscos e funcionários pertencem aquele ambiente físico ou filtrar pelo funcionário e ter as informações dele.

 

relacionamento.PNG

erro_muitos_x_muitos.PNG

erro_com_tabela_Aux.PNG

7 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução
Postado

Prezados Bruno's @Bruno Wantil e @Bruno Abdalla de Souza, tudo bem amigos?

Permitam-me uma sugestão.

Primeiros passos Power Query:

1. duplicar as tabelas riscos e funcionários,

2. Fazer um merge com a tabela de ambiente funcionário com essa tabela risco duplicada,

3. essa tabela resultante do merge será a fato do modelo,

3. desabilitar a carga dessa tabela risco que foi feito o merge.

4. na outra tabela de risco deixar apenas os códigos dos riscos,

5. na outra tabela funcionário deixar apenas os códigos dos funcionários;

Feito isso, o modelo terá 5 tabelas no Power Query, sendo 4 que serão carregadas para o Power Bi e outra que a carga foi desabilitada no passo 3.

Os relacionamentos ficaram assim:

 

image.thumb.png.6283227b2fcacf134232320826cad407.png

Feito isso, basta usar as colunas que irá encontrar os funcionários que pertencem a cada ambiente e quais riscos eles estão sujeitos naquele ambiente específico, conforme abaixo:

image.png.8da3195dfb189f5764d7c6d00f0e4eed.png

A hierarquia acima está por:
Ambiente, depois matrícula do empregado e depois os riscos que eles estão sujeitos.

Espero que tenha conseguido ajudar.

Sucesso amigos.

  • 0
  • Alunos
Postado

Oi Bruno, 

dessa forma eu consigo sim, porém eu preciso saber quem são os funcionários presente no ambiente físico. Essa informação eu só tenho na tabela "FUNC_AMB", aí resolvi mesclar com a dimensão "Ambiente_Físico" para trazer a matrícula do funcionário, que também dá certo. O problema é quando relaciono com a tabela "Risco", pois tenho que mostrar para meu gestor por exemplo, naquele ambiente eu tenho quantos funcionários e quais riscos estão expostos estes funcionários? 

  • 0
  • Alunos
Postado

Segue em anexo dois arquivos. O arquivo "Tabela_Sem_Mesclar" está idêntico ao banco de dados, sem alteração. O outro arquivo "Tabela_Mesclada" cheguei a mesclar a tabelas "Ambiente" X "Amb_Func" para levar/informar a matrícula do funcionário na tabela "Ambiente". Pode usar o arquivo que melhor te atender. Lembrando que a tabela "Risco" será minha fato, porque depois entrarão outras dimensões relacionando com essa fato.

Tabela_Sem_Mesclar.pbix Tabela_Mesclada.pbix

  • 0
  • Alunos
Postado

Boa noite @Bruno Wantil.

Pra chegar no resultado que eu te enviei, você precisa seguir todos os passos - do 1 ao 5.

De fato, se você parar no passo 2 a tabela resultante vai gerar um relacionamento muitos para muitos porque os dados ainda estarão duplicados na tabela dimensão.

No passo 4 eu falei para deixar apenas os valores únicos para os códigos de risco - que será a dimensão.

Aí não haverá mais relacionamento muito para muitos.

Só fazer os passos com calma que vai dar certo, amigo.

Sucesso aí.

Faça login para comentar

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



Entrar Agora
×
×
  • Criar Novo...