Consulta SQL

Hola,
Por favor si alguien puede ayudarme, mi problema es el siguiente:
Tengo dos tablas, una con aprox. 2000 registros y otra con aprox, 900; Necesito por medio de una consulta checar cuantos de los 900 no están en la tabla de 2000 registros y enviar esos registros a otra tabla; lo he intentado con el siguiente query, pero se tarda mucho tiempo y me genera una tabla de salida como de 4000 registros, verdaderamente algo esta mal, Agradeceré mucho su ayuda para perfeccionar la siguiente consulta...
select a. Cve, a.concep, a.importe, b.nombre;
from tabla1 a, tabla2 b;
where a.concep!=b.concepk and a.importe!=b.importek and a.cve_p!=b.cve_pk;
into table igual
browse

3 Respuestas

Respuesta
1
SELECT * FROM tabla1 WHERE EXISTS (SELECT cve FROM tabla2 WHERE tabla1.cve=tabla2.cve) into cursor iguales
Respuesta
1
Asumiendo que la tabla de 2000 registros es la tabla1 y la tabla de 900 registros es la tabla2.
Te sugiero el siguiente Query.
SELECT a.cve, a.concep, a.importe, b.nombre
FROM tabla2 b LEFT JOIN tabla1 a ON b.concepk=a.concep AND b.importek=a.importe AND b.cve_pk=a.cve_p
WHERE a.cve IS NULL
INTO TABLE igual
browse
La consulta LEFT JOIN muestra cuantos están y no están de la tabla2 en la tabla1, los registros que no estén mostraran en los tres primeros campos el valor NULL, de ahí el filtro de la clausula WHERE.
Respuesta
1
Ok. La tabla que tiene 900 sera la tabla1 y la que tiene 2000 sera la tabla2
SELECT * FROM tabla1 WHERE NOT EXISTS (SELECT * FROM tabla2 WHERE tabla1.keyfield = tabla2.keyfield)
Puedes agregar tus condiciones con And en la clausula Where.
Disculpa la tardanza, estaba enfermo, neoumonia o algo así.
Hasta la Próxima,
Derick Salazar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas