Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Muricy

Select em 2 tabelas, segunda tabela em branco. Como validar?

Recommended Posts

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.