MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    Consulta entre 3 tabelas

    avatar
    murdocjr66
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 22/07/2016

    Consulta entre 3 tabelas Empty Consulta entre 3 tabelas

    Mensagem  murdocjr66 22/7/2016, 21:24

    Boa tarde pessoal,
    bom eu tenho 3 tabelas, uma tabela de Obras, uma tabela de Requisição e outra de Devolução,
    estou tentando fazer um balando entre o material que saiu para a obra e o material que foi devolvido.
    Só que quando executo a pesquisa o material se repete que não tem em uma tabela se repete por varias vezes como no exemplo em anexo.
    Foram devolvidos somente 3 itens porém ele se repete varias vezes.
    philipp.moreira
    philipp.moreira
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 257
    Registrado : 05/02/2016

    Consulta entre 3 tabelas Empty Re: Consulta entre 3 tabelas

    Mensagem  philipp.moreira 22/7/2016, 23:09

    Cara, boa noite!

    Não consegui visualizar a imagem, pois a está muito pequena e definição não me permitiu. Mas vou tentar explicar minha sugestão:

    1 - ) Requisição: Crie uma consulta que some a quantidade do material por Material.
    Exemplo:
    Código:
    SELECT
     Cod_Material
    ,Desc_Material
    ,SUM(Qt_Material) AS [Qt Solicitada]
    FROM Material_Requisitado
    GROUP BY Cod_Material, Desc_Material

    [i] ESTA VOU CHAMAR de [Mat_Solicitado]

    2 - ) Devolução: Crie uma consulta que some a quantidade do material por Material.
    Exemplo:
    Código:
    SELECT
     Cod_Material
    ,Desc_Material
    ,SUM(Qt_Material) AS [Qt Devolvida]
    FROM Material_Devolvido
    GROUP BY Cod_Material, Desc_Material

    [i] ESTA VOU CHAMAR de [Mat_Devolvido]

    3 - ) Visão Final: Crie uma consulta que cruze lista de materiais com as duas consultas anteriores:
    Exemplo:
    Código:
    SELECT
     M.Cod_Material
    ,M.Desc_Material
    ,(M.Cod_Material - M.Desc_Material) AS [Saldo Material]
    FROM (Tb_Material LEFT JOIN Mat_Requisitado ON Tb_Mat.Cod_Material = Mat_Requisitado.Cod_Material) LEFT JOIN Mat_Devolvido ON Tb_Material.Cod_Material = Mat_Devolvido.Cod_Material;

    avatar
    murdocjr66
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 22/07/2016

    Consulta entre 3 tabelas Empty Re: Consulta entre 3 tabelas

    Mensagem  murdocjr66 24/7/2016, 04:21

    bom, fiz omo voce me orientou e criei duas consultas uma consulta materialdevolvido e outra consulta materialretirado, porém ja tentei de todas as formas criar uma consulta peça o numero da obra e apareça como a tabela abaixo,


    obra                                      codigo descrção                                                                                                                 und retirado  devolvido  
    010-16-22382 3862 POSTE DUPLO T CONCR 10,5M 150DAN 205X288MM 100X120MM PEÇ 1         0
    010-16-22382 2800 POSTE DUPLO T CONCR 10,5M 200DAN 320X434MM 110X140MM PEÇ 2        0
    010-16-22382 3009 POSTE DUP T CONCRETO 11M 250DAN 290X392MM 110X140MM PEÇ 3        2
    010-16-22382 4036 POSTE DUP T CONCRETO 11M 200DAN 210X296MM 100X120MM PEÇ 0           1
    010-16-22382 245 POSTE DUP T CONCRETO 12M 200DAN 350X476MM 110X140MM PEÇ 3       0



    Muito obrigado.
    philipp.moreira
    philipp.moreira
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 257
    Registrado : 05/02/2016

    Consulta entre 3 tabelas Empty Re: Consulta entre 3 tabelas

    Mensagem  philipp.moreira 24/7/2016, 04:24

    Poste aqui no fórum ou em algum site de compartilhamento (One Drive, Google Drive, etc) seu Banco de Dados, ou pelo menos um que contenha as três tabelas e o que já fez até agora.
    avatar
    murdocjr66
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 22/07/2016

    Consulta entre 3 tabelas Empty Res

    Mensagem  murdocjr66 24/7/2016, 12:33

    bom dia,
    realizei a postagem do banco de dados segue o link abaixo:

    http://www.4shared.com/file/nFQ5tmmCce/Controle_de_Obras.html

    a consulta que criei está com o nome balancodevolvidosiago Consulta, essa consulta tem o objetivo de fazer uma consulta entre as consultas balancodevolvidosiago e balancoretiradosiago .


    Muito Obrigado
    philipp.moreira
    philipp.moreira
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 257
    Registrado : 05/02/2016

    Consulta entre 3 tabelas Empty Re: Consulta entre 3 tabelas

    Mensagem  philipp.moreira 25/7/2016, 00:02

    Para a consulta [balancodevolvidosiago Consulta] mude o FROM para o código abaixo:

    Código:
    FROM (obra LEFT JOIN balancodevolvidosiago ON obra.OBRA = balancodevolvidosiago.obra) LEFT JOIN balancoretiradosiago ON obra.OBRA = balancoretiradosiago.obra

    Explicação: A Fonte Base da consulta deve ser a Obra e para cada registro dela o relacionamento deve buscar correspondência nas consultas auxiliares [balancoretiradosiago] e [balancodevolvidosiago], mantendo sempre a linha de registro advinda da origem Obra, por isso, o uso o Left Join e não Inner Join.


    Observações:
    1 - Em umas das consultas Retirados ou Devolvidos ( não me recordo ao certo agora ) no campo obra traz o valor Juliana, faça uma verificação para identificar se há necessidade de tratar a informação para que na consulta final não haja erro(s) ou desvio de informação.

    2 - Se precisar comparar valores, achei registro de retirada e devolução apenas para obra : 010-16-10765. Por isso os demais tem se a Obra, mas, não correspondência de valores de retirada e/ou devolução;
    avatar
    murdocjr66
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 22/07/2016

    Consulta entre 3 tabelas Empty RES

    Mensagem  murdocjr66 25/7/2016, 01:22

    Boa noite,
    coloquei o código assim como informado, deu certo porem esta acontecendo o seguinte erro,

    um obra tem 10 itens retirado e 1 item devolvido, o item devolvido se repete nas linhas dos 10 itens retirado.

    Obrigado.
    philipp.moreira
    philipp.moreira
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 257
    Registrado : 05/02/2016

    Consulta entre 3 tabelas Empty Re: Consulta entre 3 tabelas

    Mensagem  philipp.moreira 25/7/2016, 01:38

    Refaça o from assim :

    Código:
    FROM (obra LEFT JOIN balancoretiradosiago ON obra.OBRA = balancoretiradosiago.obra) LEFT JOIN balancodevolvidosiago ON (balancoretiradosiago.codsiago = balancodevolvidosiago.codsiago) AND (balancoretiradosiago.obra = balancodevolvidosiago.obra)

    Conteúdo patrocinado


    Consulta entre 3 tabelas Empty Re: Consulta entre 3 tabelas

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 08:21