Comparar dos tablas

27/06/2008 - 10:35 por Don Juan | Informe spam
Hola a todos
Necesito hacer una query de comparación entre dos tablas de la misma
estructura:
T1: Codigo Accesorio
T2: Codigo Accesorio
Donde el resultado debe ser este:
Codigo AccesorioMas
1 1
2 4
3 6

En donde codigo es el código en común, y AccesorioMas es la comparación
entre T1 y T2 que responde a la pregunta:
Cuántos Accesorios de T1 (del producto en question) NO EXISTEN en T2?

1000 Gracias por su valiosa ayuda!

Preguntas similare

Leer las respuestas

#11 Carlos M. Calvelo
30/06/2008 - 14:51 | Informe spam
Hola,

On Jun 30, 9:04 am, "Don Juan" wrote:
Hola a todos, y gracias por sus valiosas respuestas.
Siento no haber respondido antes :(

He intentado los queries, y funcionan bien, ahora claro, han tocado un buen
punto poque necesito saber cuántos de T1 no existen en T2 y sino cuántos de
T2 no existen en T1, lo he hecho con dos queries (valiéndome del ejemplo que
me enviaron), aunque me hubiese encantado poderlo hacer con un solo... en
fin ahora lo tengo (pero si alquien tiene tiempo para añadir un código en un
sólo query lo agradecería).




Pues combinando, combinando con lo que se te
ha enviado se prodría hacer algo.

Prueba con estos valores para las tablas T1 y T2
y con esta consulta:

insert t1 values(1,1)
insert t1 values(1,2)
insert t1 values(1,3)
insert t1 values(1,4)
insert t1 values(2,1)
insert t1 values(3,1)
insert t1 values(3,2)
insert t1 values(5,1)

insert t2 values(1,1)
insert t2 values(1,2)
insert t2 values(1,5)
insert t2 values(2,1)
insert t2 values(3,1)
insert t2 values(3,3)
insert t2 values(4,1)
insert t2 values(4,2)

select tc.codigo,
isnull(accMas1,0) as accesorioMasEnT1,
isnull(accMas2,0) as accesorioMasEnT2
from (select codigo from t1 union select codigo from t2) tc
left join
(select codigo, count(*) as accMas1
from t1
where accesorio not in (select accesorio
from t2
where codigo=t1.codigo)
group by codigo) t12
on tc.codigo=t12.codigo
left join
(select codigo, count(*) as accMas2
from t2
where accesorio not in (select accesorio
from t1
where codigo=t2.codigo)
group by codigo) t21
on tc.codigo=t21.codigo
order by tc.codigo

Saludos,
Carlos
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida