Muricy 0 Denunciar post Postado Novembro 16, 2008 Estou tentando resolver um probleminha e gostaria de uma ajuda. Executando a seguinte string: select codigo,nome from produtos where saldo<>(select (sum(entradas)-sum(saidas)) as saldo from saldos where saldos.codigo=produtos.codigo) A intenção é selecionar todos os produtos com saldo diferente da tabela de saldos. O problema é que se na tabela de saldos não tiver o produto ele não aparece. Um produto com o saldo 100 e na tabela de saldos ele não existe... com esse select ele não aparece. O que posso fazer para contornar isso? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Novembro 16, 2008 Tente select codigo,nome from produtos where saldo<> (select (sum(entradas)-sum(saidas)) as saldo from saldos where saldos.codigo=produtos.codigo union select codigo,0 from produtos where codigo not exists (select null from saldos where saldos.codigo = produtos.codigo)) Mas acho que isto pode ser melhorado. Compartilhar este post Link para o post Compartilhar em outros sites
Willian Kleber 0 Denunciar post Postado Novembro 27, 2008 Com esse código acho que resolve seu problema. select p.codigo, p.nome from produtos p, (select sum(entradas)-sum(saidas) saldo, codigo from saldos) s where p.codigo = s.codigo (+) and (p.saldo <> s.saldo) or s.saldo is null Não sei se funciona pois não tenho como testar (Não tenho oracle instalado em casa, apenas na empresa). Qualquer dúvida pode me add no skipe que te ajudo amigo. meu skype: araujo.willian ou no msn, mas no msn só entro fora do horário comercial: msn@williankleber.com Compartilhar este post Link para o post Compartilhar em outros sites