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

    [Resolvido]Consulta condicional com critérios em três tabelas - uma Pai e duas Filho

    DFROBINSON
    DFROBINSON
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 61
    Registrado : 21/04/2012

    [Resolvido]Consulta condicional com critérios em três tabelas - uma Pai e duas Filho Empty Consulta condicional com critérios em três tabelas - uma Pai e duas Filho

    Mensagem  DFROBINSON 3/2/2013, 22:48

    Amigos e Mestres do Forum.
    Tenho uma tabela pai "Processos" e duas tabelas filho "Pendências" e "Restrições".
    A tabela "Processos" tem um campo "Data de Liquidação" e as tabelas filho tem um campo "Data de Solução".
    Necessito montar um relatório (ou consulta) que exiba todos os "Processos" cuja da "Data de Liquidação" seja menor que a data atual E que não tenham nenhum registro filho "Pendência" ou "Restrição" OU que a "Data de Solução" dos registros filhos esteja preenchida. Estou com dificuldade na implmentação da condição "OU". Desde já agradeço qualquer ajuda.
    DFRobinson.
    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1314
    Registrado : 21/01/2012

    [Resolvido]Consulta condicional com critérios em três tabelas - uma Pai e duas Filho Empty Re: [Resolvido]Consulta condicional com critérios em três tabelas - uma Pai e duas Filho

    Mensagem  Cláudio Más 4/2/2013, 11:00

    Vê se é isso:

    SELECT Processos.* FROM (Processos LEFT JOIN Pendências ON Processos.Id = Pendências.IdProcesso) LEFT JOIN Restrições ON Processos.Id = Restrições.IdProcesso WHERE (((Processos.[Data de Liquidação]) < Date()) AND ((Pendências.IdProcesso) Is Null) AND ((Restrições.IdProcesso) Is Null)) OR (((Processos.[Data de Liquidação]) < Date()) AND ((Pendências.[Data de Solução]) Is Not Null) AND ((Restrições.[Data de Solução]) Is Not Null))
    DFROBINSON
    DFROBINSON
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 61
    Registrado : 21/04/2012

    [Resolvido]Consulta condicional com critérios em três tabelas - uma Pai e duas Filho Empty Re: [Resolvido]Consulta condicional com critérios em três tabelas - uma Pai e duas Filho

    Mensagem  DFROBINSON 4/2/2013, 19:01

    Olá Cláudio !
    Muitíssimo obrigado pela ajuda. Aprendi muito com o comando SQL que sugeriste. Chegamos quase lá.
    Ainda necessito resolver a seguinte situação: se um dos filhos não atender a condição "IsNot Null([Data de Solução], ou seja, estiver com este campo vazio, o processo não deve ser listado. Estou pensando em criar dois campos do tipo Sim/Não na tabela Pai. Um indicaria a existência de Pendências e outro a existência de Restrições em aberto (com "Data de Solução = Nulo). Esses campos siplificariam a consulta que consideraria apenas a tabela Pai. Mas, para isso, necessito criar uma rotina para atualizar esses campos toda vez que algum registro filho for inserido, excluído ou editado. Essa rotina teria de ler os registros filhos, verificar se há alguma "data de solução" = Nulo e marcar sim/não no campo correspondente do registro Pai. Desde já vou pesquisar essa solução mas se tiveres uma sugestão de código VBA para essa rotina, agradeço.
    Mais uma vez, obrigado pela ajuda.
    DFRobinson
    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1314
    Registrado : 21/01/2012

    [Resolvido]Consulta condicional com critérios em três tabelas - uma Pai e duas Filho Empty Re: [Resolvido]Consulta condicional com critérios em três tabelas - uma Pai e duas Filho

    Mensagem  Cláudio Más 4/2/2013, 19:13

    Olá DFRobinson, eu achei que a instrução SQL já contemplava essa regra.
    Acho que pode ser resolvido pela consulta, sem necessidade dos campos Sim/Não e da rotina, que poderiam gerar inconsistências.
    Se puder enviar o banco de dados com somente as tabelas envolvidas, mesmo com poucos registros, facilita com a solução.
    DFROBINSON
    DFROBINSON
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 61
    Registrado : 21/04/2012

    [Resolvido]Consulta condicional com critérios em três tabelas - uma Pai e duas Filho Empty Re: [Resolvido]Consulta condicional com critérios em três tabelas - uma Pai e duas Filho

    Mensagem  DFROBINSON 4/2/2013, 21:25

    Olá Cláudio.
    A solução via consulta seria pefeita.
    Segue o Back-End zipado.
    As tabelas envolvidas são [Processos] (Pai), [Pend Reg do Processo] (filho 1) e [Restr Seg do Processo (filho 2)].
    Mais uma vez obrigado.
    DFRobinson.
    Anexos
    [Resolvido]Consulta condicional com critérios em três tabelas - uma Pai e duas Filho AttachmentJG_be.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (208 Kb) Baixado 26 vez(es)
    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1314
    Registrado : 21/01/2012

    [Resolvido]Consulta condicional com critérios em três tabelas - uma Pai e duas Filho Empty Re: [Resolvido]Consulta condicional com critérios em três tabelas - uma Pai e duas Filho

    Mensagem  Cláudio Más 4/2/2013, 22:16

    Só adaptando os nomes das tabelas e campos:

    SELECT Processos.* FROM (Processos LEFT JOIN [Pend Reg do Processo] ON Processos.Código = [Pend Reg do Processo].CodProcesso) LEFT JOIN [Restr Seg do Processo] ON Processos.Código = [Restr Seg do Processo].CodProcesso WHERE (((Processos.DataLiquidação) < Date()) AND (([Pend Reg do Processo].CodProcesso) Is Null) AND (([Restr Seg do Processo].CodProcesso) Is Null)) OR (((Processos.DataLiquidação) < Date()) AND (([Pend Reg do Processo].DataSolução) Is Not Null) AND (([Restr Seg do Processo].DataSolução) Is Not Null))

    Essa consulta não funciona conforme as regras?
    DFROBINSON
    DFROBINSON
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 61
    Registrado : 21/04/2012

    [Resolvido]Consulta condicional com critérios em três tabelas - uma Pai e duas Filho Empty Re: [Resolvido]Consulta condicional com critérios em três tabelas - uma Pai e duas Filho

    Mensagem  DFROBINSON 5/2/2013, 00:34

    Prezado Cláudio.
    Copiei seu comando e colei em uma nova consulta.
    Anexei a imagem do modo design da consulta gerada pelo comando SQL.
    O resultado obtido, infelizmente, não é o que eu necessito e, provavelmente, eu não tenha conseguido descrever a demanda o que vou tentar novamente agora: Necessito "Listar todos os processos com [DataLiquidação] < Date() e que NÃO tenham qualquer filho com [Data de Solução] = Nulo". O comando funciona para Processos sem filhos ou com filhos em ambas as tabelas e desde que todos estejam com [Data de Solução] preenchida. Não funciona se tiver filho(s) em apenas uma das tabelas, mesmo que estes estejam com a [Data de Solução] preenchida ou se houver algum registro filho com a [Data de Solução] = Nulo. Já tentei algumas variações de combinações de critérios mas sempre escapa alguma situação.
    Independente de qualquer coisa, com ou sem solução para o caso, quero te agradecer tamanha atenção.
    DFRobinson

    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1314
    Registrado : 21/01/2012

    [Resolvido]Consulta condicional com critérios em três tabelas - uma Pai e duas Filho Empty Re: [Resolvido]Consulta condicional com critérios em três tabelas - uma Pai e duas Filho

    Mensagem  Cláudio Más 5/2/2013, 12:54

    Olá DFRobinson,

    No banco de dados que você enviou, todos os registros em "Processos" estão com "DataLiquidação" em branco.
    Se preencher esse campo (15/10/2012, por exemplo), aparece um registro no resultado.

    Ainda assim, se não for o resultado esperado, tente:

    SELECT Processos.* FROM (Processos LEFT JOIN [Pend Reg do Processo] ON Processos.Código = [Pend Reg do Processo].CodProcesso) LEFT JOIN [Restr Seg do Processo] ON Processos.Código = [Restr Seg do Processo].CodProcesso WHERE (((Processos.DataLiquidação) < Date()) AND (([Pend Reg do Processo].CodProcesso) Is Null) AND (([Restr Seg do Processo].CodProcesso) Is Null)) OR (((Processos.DataLiquidação) < Date()) AND (([Pend Reg do Processo].DataSolução) Is Not Null)) OR (((Processos.DataLiquidação) < Date()) AND (([Restr Seg do Processo].DataSolução) Is Not Null))
    DFROBINSON
    DFROBINSON
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 61
    Registrado : 21/04/2012

    [Resolvido]Consulta condicional com critérios em três tabelas - uma Pai e duas Filho Empty Re: [Resolvido]Consulta condicional com critérios em três tabelas - uma Pai e duas Filho

    Mensagem  DFROBINSON 5/2/2013, 13:13

    Olá Cláudio.
    Funcionou !!!
    Não tenho palavras para lhe agradecer.
    Receba meus votos de sucesso.
    DFRobinson.
    DFROBINSON
    DFROBINSON
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 61
    Registrado : 21/04/2012

    [Resolvido]Consulta condicional com critérios em três tabelas - uma Pai e duas Filho Empty Re: [Resolvido]Consulta condicional com critérios em três tabelas - uma Pai e duas Filho

    Mensagem  DFROBINSON 5/2/2013, 13:15

    Faltou alterar para Resolvido.
    Feito agora !
    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1314
    Registrado : 21/01/2012

    [Resolvido]Consulta condicional com critérios em três tabelas - uma Pai e duas Filho Empty Re: [Resolvido]Consulta condicional com critérios em três tabelas - uma Pai e duas Filho

    Mensagem  Cláudio Más 5/2/2013, 13:21

    Valeu DFRobinson, obrigado!

    Conteúdo patrocinado


    [Resolvido]Consulta condicional com critérios em três tabelas - uma Pai e duas Filho Empty Re: [Resolvido]Consulta condicional com critérios em três tabelas - uma Pai e duas Filho

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 9/5/2024, 11:30