[firebase-br] RES: RES: Join 3 tabelas

Gilson gilson em rio-minas.com
Sex Ago 15 11:06:03 -03 2014


Resolvi da seguinte forma !

SELECT  controle_de_exigencias.vencimento, processos2.industria, 
controle_de_exigencias.procambiental, controle_de_exigencias.titular,
         controle_de_exigencias.data, 
controle_de_exigencias.descricaodaexigencia, 
controle_de_exigencias.solicprorrog
   FROM CONTROLE_DE_EXIGENCIAS
LEFT JOIN processos2 on processos2.processoseama = 
controle_de_exigencias.procambiental
where controle_de_exigencias.vencimento between :dtini and :dtfin
and controle_de_exigencias.PROTOCOLO is null
and processos2.industria = 'SIM'
and processos2.aruivomorto is null
and processos2.excluido is null
union
SELECT  controle_de_exigencias.vencimento, semmades.industria, 
controle_de_exigencias.procambiental, controle_de_exigencias.titular,
         controle_de_exigencias.data, 
controle_de_exigencias.descricaodaexigencia, 
controle_de_exigencias.solicprorrog
   FROM CONTROLE_DE_EXIGENCIAS
LEFT JOIN semmades on semmades.processosemmades = 
controle_de_exigencias.procambiental
where controle_de_exigencias.vencimento between :dtini and :dtfin
and controle_de_exigencias.PROTOCOLO is null
and semmades.industria = 'SIM'
and semmades.arquivomorto is null
and semmades.excluido is null
order by 1 asc

Em 15/08/2014 10:36, Felix - SOL Informática escreveu:
> UP? Sério mesmo? :-)
>
> Basta observar se as condições do WHERE são atendidas. Pode ser que não
> exista(m) registro(s) para os parametros informados.
>
> Francisco Felix
> www.solsistemas.com
>
>
> -----Mensagem original-----
> De: lista [mailto:lista-bounces em firebase.com.br] Em nome de Gilson
> Enviada em: sexta-feira, 15 de agosto de 2014 09:31
> Para: FireBase
> Assunto: Re: [firebase-br] RES: Join 3 tabelas
>
> UP
>
> Em 15/08/2014 08:14, Gilson escreveu:
>> to mandando a estrutura que estou usando para teste:
>>
>> SELECT * FROM CONTROLE_DE_EXIGENCIAS
>> LEFT JOIN PROCESSOS2 on PROCESSOS2 .processoseama =
>> CONTROLE_DE_EXIGENCIAS.procambiental
>> LEFT JOIN SEMMADES on SEMMADES.processosemmades=
>> CONTROLE_DE_EXIGENCIAS.procambiental
>> where CONTROLE_DE_EXIGENCIAS.vencimento between :dtini and :dtfin and
>> CONTROLE_DE_EXIGENCIAS.PROTOCOLO is null and PROCESSOS2 .INDUSTRIA is
>> NOT null and SEMMADES.INDUSTRIA is NOT null order by
>> CONTROLE_DE_EXIGENCIAS.VENCIMENTO asc
>>
>> não esta trazendo nada, se eu tiro essas duas linhas and
>> processos2.INDUSTRIA is NOT null and SEMMADES.INDUSTRIA is NOT null
>> ele traz informação !
>>
>> Em 14/08/2014 18:24, jackson oliveira escreveu:
>>> Perfeito, mas, minha sugestão de boa prática seria... você fazer um
>>> procedimento onde, verificaria a existência de dados em tempo de
>>> execução e venha a retornar somente a query com base nas tabelas que
>>> existam dados.
>>>
>>>
>>> Em 14 de agosto de 2014 18:18, Felix - SOL Informática <
>>> felix em solsistemas.com> escreveu:
>>>
>>>> Trazendo TODOS os registros da tabela A, mesmo que NÃO EXISTAM nas
>>>> tabelas B e C select *
>>>>     from tabela_a a
>>>>     left join tabela_b b on a.processo = b.processo
>>>>     left join tabela_c c on a.processo = c.processo
>>>>
>>>> Se for para retornar todos que estejam presentes nas 3 tabelas pelo
>>>> campo, troque para INNER JOIN.
>>>>
>>>> Francisco Felix
>>>> www.solsistemas.com
>>>>
>>>> -----Mensagem original-----
>>>> De: lista [mailto:lista-bounces em firebase.com.br] Em nome de jackson
>>>> oliveira Enviada em: quinta-feira, 14 de agosto de 2014 18:03
>>>> Para: FireBase
>>>> Assunto: Re: [firebase-br] Join 3 tabelas
>>>>
>>>> select *
>>>>     from tabela_a a
>>>>          , tabela_c c
>>>>          , tabela_d d
>>>>    where a.processo = b.processo
>>>>       and a.processo = c.processo
>>>>       and b.processo = c.processo;
>>>>
>>>> Querido, execute esta query acima e já irá trazer os resultados;
>>>> caso não tragam, significa que alguma tabela está furando, ou seja,
>>>> em algum momento, quando gravam os processos, alguma tabela fica de
>>>> fora no momento da gravação, logo, como por exemplo, poderia TER A
>>>> INFORMAÇÃO NA TABELA A e B e a C, não conter informação, logo, via
>>>> JOIN como solicitou, a query acaba não trazendo nada.
>>>>
>>>> Se este for o problema que mencionou (POIS, NÃO REFERENCIOU O
>>>> PROBLEMA NO POST), então, informe que lhe mando a solução correta
>>>> (ou eu, ou outro participante do FÓRUM).
>>>>
>>>> Abraços,
>>>>
>>>> Jackson de Oliveira
>>>>
>>>>
>>>>
>>>> Em 14 de agosto de 2014 17:44, Gilson <gilson em rio-minas.com> escreveu:
>>>>
>>>>> Pessoal estou com problema para fazer um Join em 3 tabelas.
>>>>> Exemplo:
>>>>>
>>>>> TABELA_A
>>>>> Codigo
>>>>> Empresa
>>>>> Processo
>>>>>
>>>>> TABELA_B
>>>>> Codigo
>>>>> Vencimento
>>>>> Processo
>>>>>
>>>>> TABELA_C
>>>>> Codigo
>>>>> Prorrogacao
>>>>> Processo
>>>>>
>>>>> O campo que vincula elas é o campo PROCESSO.
>>>>> Eu preciso que ao fazer o relatorio da TABELA_A eu consiga pegar
>>>>> informação para filtragem da TABELA_B e TABELA_C
>>>>>
>>>>>
>>>>> ______________________________________________
>>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>>>
>>>> ______________________________________________
>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>>
>>>>
>>>> ______________________________________________
>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>>
>>> ______________________________________________
>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>





Mais detalhes sobre a lista de discussão lista