Array
(
)

Como fazer este select ?

Fabiano Góes
   - 06 mar 2006

Aplicação com banco de dados FireBird,

Comparar duas tabelas:

Como retornar os registros que existe na tabela1 e não exite na Tabela2

Tipo:
#Código


Select Campos
from Tabela1 join Tabela2
on Tabela1.id_Tabela2 = Tabela2.id_Tabela2
Where ...


Se alguem puder me ajudar eu agradeço !!!!!


Martins
   - 06 mar 2006


Citação:
Aplicação com banco de dados FireBird,

Comparar duas tabelas:

Como retornar os registros que existe na tabela1 e não exite na Tabela2

Tipo:
#Código


Select Campos
from Tabela1 join Tabela2
on Tabela1.id_Tabela2 = Tabela2.id_Tabela2
Where ...


Se alguem puder me ajudar eu agradeço !!!!!

Não fiz nenhum teste, pois não estou com nenhuma ferramenta aqui, apenas um PC com win98+office e mais nada, hehe...

Mas tente assim:
#Código

Select Campos From Tabela1 where Tabela1.Id_Tabela not in (Select Id_Tabela2 from Tabela2)


Boa sorte!!!


Motta
   - 06 mar 2006

Exemplo : USUARIOS SEM POSTS

#Código


SELECT *
FROM USUARIO
WHERE NOT EXISTS (SELECT NULL
FROM POSTS
WHERE USUARIO.CODUSU = POST.CODUSU)



Martins
   - 07 mar 2006


Citação:
Exemplo : USUARIOS SEM POSTS

#Código


SELECT *
FROM USUARIO
WHERE NOT EXISTS (SELECT NULL
FROM POSTS
WHERE USUARIO.CODUSU = POST.CODUSU)


Funciona tb, valew Motta!!!


Fabiano Góes
   - 07 mar 2006

ALGUEM PODE CORRIGIR ESTE MEU SELECT ???

#Código


SELECT E.compe_des, E.banco_des, E.agencia_des, E.conta_des,
E.numero_doc, E.valor
FROM arq_ent_cust1_07032006_074_2 E JOIN arq_proc_cust1_07032006_074_2 P
ON E.id_previa = P.id_previa
WHERE E.numero_doc NOT IN (SELECT P.cheque FROM arq_proc_cust1_07032006_074_2 P) AND
E.banco_des NOT IN (SELECT P.banco FROM arq_proc_cust1_07032006_074_2 P) AND
E.agencia_des NOT IN (SELECT P.agencia FROM arq_proc_cust1_07032006_074_2 P)



Martins
   - 07 mar 2006

Primeiramente o q está acontecendo? Não lhe é retornado nada ou dá uma mensagem de erro?

Não tenho o Firebird aqui, mas acho q vc deveria tentar assim.

#Código


SELECT E.compe_des, E.banco_des, E.agencia_des, E.conta_des,
E.numero_doc, E.valor
FROM arq_ent_cust1_07032006_074_2 E Left JOIN arq_proc_cust1_07032006_074_2 P
ON E.id_previa = P.id_previa
WHERE E.numero_doc NOT IN (SELECT P.cheque FROM arq_proc_cust1_07032006_074_2) AND
E.banco_des NOT IN (SELECT P.banco FROM arq_proc_cust1_07032006_074_2) AND
E.agencia_des NOT IN (SELECT P.agencia FROM arq_proc_cust1_07032006_074_2)



Emerson
   - 08 mar 2006

talvez você deva usar OR no lugar de AND:
#Código

SELECT
E.compe_des, E.banco_des, E.agencia_des,
E.conta_des, E.numero_doc, E.valor
FROM
arq_ent_cust1_07032006_074_2 E
JOIN
arq_proc_cust1_07032006_074_2 P ON (E.id_previa = P.id_previa)
WHERE
E.numero_doc NOT IN (SELECT cheque FROM arq_proc_cust1_07032006_074_2) OR
E.banco_des NOT IN (SELECT banco FROM arq_proc_cust1_07032006_074_2) OR
E.agencia_des NOT IN (SELECT agencia FROM arq_proc_cust1_07032006_074_2)