Erro com sql..
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
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
Curtidas 0
Respostas
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
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
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.
Espero ter colaborado.
GOSTEI 0
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