Desculpe, a query correta é:

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
  It.Num_Ficha = Fi.Num_Ficha
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


  ----- Original Message ----- 
  From: Ricardo Gomes 
  To: sqlwin@virtualand.net 
  Sent: Wednesday, August 29, 2007 2:37 PM
  Subject: Re: [sqlwin] SqlBase


  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