Erro com sql..

Firebird

08/03/2010

Galera com um problema na query e gostaria de pedir ajuda a vcs se possível
essa query está funcionando corretamente, só que aonde está si.seqsubitem = 1 eu teria que pegar o si.seqnum, só que como ele me retorna mais de um registro dá erro ou não retorna nada... alguém sabe o que posso fazer?

Código:
select distinct si.descricao, si.dose||' '||si.unidade dose, ie.estabilidadediluicao||' H' estabilidade,
       si.via, ie.obs, si.bolsa ,si.seqnum,
       (select si.descricao from saidaestoqueitem si
       where si.subitemid = :saidaestoqueid and si.itemestoqueaprid is not null and
       si.seqsubitem =  1) as diluicao
from saidaestoqueitem si
     join saidaestoque se on (se.saidaestoqueid = si.saidaestoqueid)
     join itemestoque ie on (ie.itemestoqueid = si.itemestoqueid)
where si.saidaestoqueid = :saidaestoqueid and si.subitemid is null
order by si.bolsa
Politran Ltda

Politran Ltda

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

08/03/2010

use join para obter esse resultado.

tente assim:

select distinct
  si.descricao, si.dose||' '||si.unidade dose, ie.estabilidadediluicao||' H' estabilidade,
  si.via, ie.obs, si.bolsa, si.seqnum, si2.descricao diluicao
from
  saidaestoqueitem si
left join saidaestoqueitem si2 on
  (si2.subitemid = si.saidaestoqueid and si2.itemestoqueaprid is not null and
   si2.seqsubitem = si.seqnum)
join saidaestoque se on
  (se.saidaestoqueid = si.saidaestoqueid)
join itemestoque ie on
  (ie.itemestoqueid = si.itemestoqueid)
where
  si.saidaestoqueid = :saidaestoqueid and si.subitemid is null
order by
  si.bolsa

GOSTEI 0
Wilson Junior

Wilson Junior

08/03/2010

Sempre que ocorrer de utulizar a mesma tabela saidaestoqueitem mais do que uma vez, sempre utilize alias (apelidos) para as tabelas.

Espero ter colaborado.
GOSTEI 0
Alison Bissoli

Alison Bissoli

08/03/2010

Além de alias, sempre faça referencias case sensitive à tabelas, há tecnologias de acesso que trazem tabelas erradas se escrito o nome de forma diferente, como por exemplo o tlb com connection broker pra com+.
GOSTEI 0
POSTAR