Se for colocaro a tabela que recebe o left join na cláusula where, o left
perde efeito e acaba vidando um join, pois o critério de busca é baseado na
tabela left. Uma solucao pra isso seria subir as condicoes da tabela left
para o from. O Select ficaria +/- assim:

SELECT
  F.EQUIP_ID,
  F.FECH_NAME,
  COUNT(*) AS FECH_QTDE
FROM
  WNB_NFECHAMENTO F
  LEFT JOIN WNB_NPROCESS P ON F.FECH_ID = P.FECH_ID
    and P.PRC_DATE_CREATED >=
TO_DATE('05/05/2008:00:00:00','DD/MM/YYYY:HH24:MI:SS')
    and P.PRC_DATE_CREATED <=
TO_DATE('06/05/2008:23:59:59','DD/MM/YYYY:HH24:MI:SS')
    and P.STATUS_ID = 2
GROUP BY F.FECH_NAME, F.EQUIP_ID
ORDER BY F.FECH_NAME

2009/6/23 Thiago <lirati...@yahoo.com.br>

>
>
> Desculpe minha ignorância, mas não entendi.
> Poderia me dar um exemplo?
> Obrigado!
>
> ________________________________
> De: Jeison <jei...@stcruz.com.br <jeison%40stcruz.com.br>>
> Para: oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>
> Enviadas: Terça-feira, 23 de Junho de 2009 15:05:11
> Assunto: Re: [oracle_br] Dúvida com left/right join
>
>
> Tente tirar os filtros da clausula "Where" e por dentro do left join...
>
> ----- Original Message -----
> From: lirati_sp
> To: oracle...@yahoogrup os.com.br
> Sent: Tuesday, June 23, 2009 12:47 PM
> Subject: [oracle_br] Dúvida com left/right join
>
> Boa tarde,
>
> Tenho um SELECT onde há duas tabelas: WNB_NPROCESS (processos) e
> WNB_NFECHAMENTO (fechamentos) . Cada PROCESSO tem um FECHAMENTO, mas nem
> todo fechamento pode estar associado a um processo.
> O que eu quero nesta consulta, é mostrar uma lista de fechamentos, com a
> quantidade de processos associados. Até aí tudo bem, mas eu também quero que
> ele mostre quando o fechamento não tiver nenhum processo associado, com um
> "0". Não é isso que acontece, pois quando não há processo associado, o
> fechamento não aparece na lista.
> Imagino que isso seja um trabalho para LEFT ou RIGHT JOIN. Conheço a teoria
> sobre esses comandos, mas não estou conseguindo fazer funcionar de jeito
> nenhum!! Será que é por causa do GROUP BY?
>
> Aqui está o SELECT:
>
> SELECT F.EQUIP_ID, F.FECH_NAME, COUNT(*) AS FECH_QTDE
> FROM
> WNB_NFECHAMENTO F LEFT JOIN WNB_NPROCESS P ON F.FECH_ID = P.FECH_ID
> WHERE
> P.PRC_DATE_CREATED >= TO_DATE('05/ 05/2008:00: 00:00','DD/ MM/YYYY:HH24:
> MI:SS') AND
> P.PRC_DATE_CREATED <= TO_DATE('06/ 05/2008:23: 59:59','DD/ MM/YYYY:HH24:
> MI:SS') AND
> P.STATUS_ID = 2
> GROUP BY F.FECH_NAME, F.EQUIP_ID
> ORDER BY F.FECH_NAME
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> Veja quais são os assuntos do momento no Yahoo! +Buscados
> http://br.maisbuscados.yahoo.com
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
Jairo Azevedo
jsouza...@gmail.com
protheus...@yahoo.com.br
(21) 8888-6492


[As partes desta mensagem que não continham texto foram removidas]

Responder a