Cómo saber si un campo de una tabla no está en otra tabla

By | 2010/05/24

En mi trabajo rutinario debo verificar que no me llegue información de un cliente que no esté registrada en el maestro de clientes para lo cual realicé una consulta en sql server que era así:

select count(*) ,  clie_id from registros
where clie_id not in (select cod_cliente from clientes)
group by clie_id

Me funcionaba bien hasta que un día me percate que no me estaba mostrando bien la información por lo que supuse que existe un límite en la cantidad de elementos que se pueden contener dentro de in()

La solución (y más eficiente) es:

select cant, clie_id from
(
select count(*)  cant, clie_id, cod_cliente from registros a
left outer join clientes b on a.clie_id=b.cod_cliente
group by clie_id, cod_cliente
) x
where cod_cliente is null

Leave a Reply

Your email address will not be published. Required fields are marked *

This blog is kept spam free by WP-SpamFree.