[firebase-br] Join em varias tabelas
Wilson Rosa
wsrosa em gmail.com
Seg Maio 5 16:09:41 -03 2014
Gilson,
o seu WHERE tem 3 condições que precisam estar entre parênteses pra que
seja determinada a prevalência das condições, ou seja, qual condição será
executada primeiro e qual será executada depois, ainda mais quando se
envolve AND e OR.
Mas dá pra simplificar assim:
SELECT controle_de_exigencias.procambiental,
controle_de_exigencias.vencimento,
processos2.titular,
auto_infracao.valor_multa
FROM controle_de_exigencias
JOIN processos2 ON controle_de_exigencias.procambiental =
processos2.processoseama
LEFT OUTER JOIN auto_infracao ON controle_de_exigencias.procambiental =
auto_infracao.num_registro
WHERE
( controle_de_exigencias.vencimento = '2014/05/01' ) AND
(
( COALESCE( processos2.arquivomorto, 'NÃO' ) = 'NÃO' ) AND
( COALESCE( processos2.industria , 'NÃO' ) = 'NÃO' ) AND
( COALESCE( processos2.excluido , 'N' ) = 'N' )
)
neste caso o COALESCE trará 'NÃO' sempre que campo for NULL, assim não é
necessário ficar comparando IS NULL *OU* =ValorPadrão.
e o WHERE fica mais legível: se o vencimento for '2014/05/01' *E* se o
arquivomorto for 'NÃO' *E* se a industria for 'NÃO' *E* se o excluido
for 'N' ....... entra na listagem.
Veja se funciona...
*Wilson Rosawsrosa em gmail.com <wsrosa em gmail.com>*
Em 5 de maio de 2014 15:45, Gilson <gilson em rio-minas.com> escreveu:
> Esse é um exemplo do que estou tentando implementar !
>
> select controle_de_exigencias.procambiental, controle_de_exigencias.vencimento,
> processos2.titular, auto_infracao.VALOR_MULTA from controle_de_exigencias
> join processos2 on controle_de_exigencias.procambiental =
> processos2.processoseama
> Left outer JOIN AUTO_INFRACAO on CONTROLE_DE_EXIGENCIAS.PROCAMBIENTAL =
> AUTO_INFRACAO.NUM_REGISTRO
> where controle_de_exigencias.vencimento = '2014/05/01'
> and processos2.aruivomorto is null
> and processos2.industria is null
> and processos2.excluido is null
> or (processos2.aruivomorto = 'NÃO')
> or (processos2.industria = 'NÃO')
> or (processos2.excluido = 'N')
>
> Em 05/05/2014 15:26, Renan Rogowski Pozzo escreveu:
>
> Você já tem essa estrutura de tabelas pronta e quer apenas fazer um
>> select ?
>> Como você identifica que o campo BAIXADO é TRUE?
>>
>> Abraço,
>> Renan Rogowski Pozzo
>>
>> *"Entrega o teu caminho ao Senhor; confia nele, e ele o fará." Salmos
>> 37:5*
>>
>>
>> Em 5 de maio de 2014 15:05, Gilson <gilson em rio-minas.com> escreveu:
>>
>> Boa Tarde Pessoal,
>>>
>>> Estou com o seguinte problema, tenho uma tabela Exigência que guarda
>>> informações da tabela Iema, Semma, FEAM, Igram, tenho um ID que é a
>>> referencia para à tabela Exigência , as tabelas que se relacionam com a
>>> Exigência tem um campo chamado baixado ao qual se o mesmo for true ele
>>> não
>>> deve sair na listagem, mais não consegui visualizar como fazer isso !!
>>>
>>> Agradeço desde já
>>>
>>> ______________________________________________
>>> 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