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: [email protected]
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