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]