Juliana, acredito que se você utilizar a sintaxe ANSI SQL-92, sua query 
funcionará (isso se a versão do seu SqlBase suportar SQL92). Reescrevo abaixo 
sua query em ANSI SQL-92:

SELECT Fi.num_Ficha,
       Decode(It.cod_Fazenda, null, it.cod_local ||' - '|| Lo.Desc_Local, 
it.Cod_Fazenda ||' - '|| Fa.Nome_Fazenda
FROM Op_Ficha Fi
INNER JOIN Op_Ficha_Item It ON
  It.Safra = Fi.Safra and
LEFT OUTER JOIN Cad_Fazenda Fa ON
   Fa.Cod_Fazenda = It.Cod_Fazenda
LEFT OUTER JOIN Cad_Local Lo ON
   Lo.Cod_Local = It.Cod_Local

Teste a forma acima no Oracle só pra ver se não cometi nenhum erro. Funcionando 
no Oracle, teste no SQLBase e veja o que acontece.

Aproveito pra encorajar você a estudar a sintaxe ANSI SQL-92 que é muito mais 
clara e eficiente. Alguns bancos de dados inclusive apresentam uma melhor 
performance quando utilizamos essa sintaxe.

Bem, espero que funcione.

Ricardo Gomes.

  ----- Original Message ----- 
  From: Juliana Bianchini Nogueira 
  To: sqlwin@virtualand.net 
  Sent: Wednesday, August 29, 2007 7:42 AM
  Subject: [sqlwin] SqlBase


  Bom dia,

   

  Estou precisando utilizar mais de um outer join em um select, no oracle 
consigo utilizar mais no SQLBASE não deixa fala que só pode usar um outer join, 
alguém sabe me dizer se existe alguma forma de fazer com que o SQLBASE deixe 
utilizar mais de um.

   

  Exemplo:

   

  Select   Fi.num_Ficha,

              Decode(It.cod_Fazenda, null, it.cod_local ||' - '|| 
Lo.Desc_Local, it.Cod_Fazenda ||' - '|| Fa.Nome_Fazenda

   

  From    Op_Ficha Fi,

              Op_Ficha_Item It,

              Cad_Fazenda Fa,

              Cad_Local Lo

   

  Where  It.Safra = Fi.Safra and

              It.Num_Ficha = Fi.Num_Ficha and

              Fa.Cod_Fazenda(+) = It.Cod_Fazenda and

              Lo.Cod_Local(+) = It.Cod_Local

   

   

  Sem mais,

   

  No aguardo,

   

   

  Juliana Bianchini Nogueira

  Analista de Sistemas 

  Grupo Carlos Lyra

  Tel. (34) 3319-6421

   

Responder a