Resultados enexistentes em duas tabelas

Firebird

15/07/2005

Bom dia galera, preciso procurar em duas tabelas e retornar os registros que não existão entre elas pois é para ver quem está com pendencia,

ex:
tabela lancamentos A, Tabela Proventos B

select * from lancamentos A, Proventos B
where a.cod_prov = b.indice

o resultado será:
=======================
Provento: Nome: Valor:
INSS Costa e Silva 50,88
INSS Lucas Matheus 88,77
INSS João almeida 30,88
=======================
mais levando em consideração que tenho 7 registros em minha base gostaria que me retornace somente as 4 que não se encontrar acima.

Como posso fazer? pode ser via View ou Sp,,,

Grato


Marcos Fernando

Marcos Fernando

Curtidas 0

Respostas

Gm.gui

Gm.gui

15/07/2005

utilize uma sub select com a opção not exists na where


GOSTEI 0
Eduardo Pereira

Eduardo Pereira

15/07/2005

Você pode usar o ´not exists´ no WHERE:

SELECT * FROM Proventos B
WHERE NOT EXISTS (SELECT * FROM Lancamentos A
                  WHERE a.cod_prov = b.indice)


Esta query retornará todos os registros da tabela proventos que não possuem lançamentos.

O NOT EXISTS implementa a operação de subtração (´MINUS´) entre conjuntos. No seu caso subtraimos da tabela Proventos todos os registros que já tinham associação com a tabela Lacamentos, retornando somente os que estavam sem associação (´pendentes´, segundo você).


[]´s
Eduardo Pereira


GOSTEI 0
Marcos Fernando

Marcos Fernando

15/07/2005

valeu galera a dica deu certinho, eu já tinha conseuido através de uma Sp mais não pelo modo sql simples

Valeu..


GOSTEI 0
POSTAR