RIGHT JOIN
Publicado por JL (1 intervención) el 10/11/2005 11:01:26
Hola, a ver si alguien me puede ayudar con esto:
Tengo dos tablas que comparten un campo común. Los valores de ese campo pueden aparecen varias veces en ambas tablas. Quiero que una consulta me dé el número de veces que se repiten valores de ese campo en la tabla 1 y, para los valores que no se repiten, los que aparecen en la tabla 2( también quiero ver para los valores que se repiten en la tabla 1, si aparecen, y cuantas veces, en la tabla 2). HE relacionado las dos tablas, con una relación uno a varios ( supongo que aquí está el problema), siendo la de la derecha ( según la terminología access) la tabla 1. La siguiente consulta me da "casi" lo que quiero:
SELECT Tablaprueba1.NUMCLIENTE, Count(Tablaprueba1.numcliente) AS cuenta1, Count (Tablaprueba2.numero) AS cuenta2, (Count(Tablaprueba1.numcliente)+ Count (Tablaprueba2.numero)) AS total
FROM Tablaprueba2 RIGHT JOIN Tablaprueba1 ON Tablaprueba2.numero = Tablaprueba1.numcliente
GROUP BY Tablaprueba1.numcliente
HAVING (((Count(Tablaprueba1.numcliente))>1) OR ((Count(Tablaprueba1.numcliente)+ Count (Tablaprueba2.numero))>1));
El problema es que en cuenta2 no me da el resultado esperado : para aquellos valores que aparecen en tabla 1 y tabla 2, cuenta2 me da lo mismo que cuenta1.
¿Alguna sugerencia?
GRacias y un saludo.
JL
Tengo dos tablas que comparten un campo común. Los valores de ese campo pueden aparecen varias veces en ambas tablas. Quiero que una consulta me dé el número de veces que se repiten valores de ese campo en la tabla 1 y, para los valores que no se repiten, los que aparecen en la tabla 2( también quiero ver para los valores que se repiten en la tabla 1, si aparecen, y cuantas veces, en la tabla 2). HE relacionado las dos tablas, con una relación uno a varios ( supongo que aquí está el problema), siendo la de la derecha ( según la terminología access) la tabla 1. La siguiente consulta me da "casi" lo que quiero:
SELECT Tablaprueba1.NUMCLIENTE, Count(Tablaprueba1.numcliente) AS cuenta1, Count (Tablaprueba2.numero) AS cuenta2, (Count(Tablaprueba1.numcliente)+ Count (Tablaprueba2.numero)) AS total
FROM Tablaprueba2 RIGHT JOIN Tablaprueba1 ON Tablaprueba2.numero = Tablaprueba1.numcliente
GROUP BY Tablaprueba1.numcliente
HAVING (((Count(Tablaprueba1.numcliente))>1) OR ((Count(Tablaprueba1.numcliente)+ Count (Tablaprueba2.numero))>1));
El problema es que en cuenta2 no me da el resultado esperado : para aquellos valores que aparecen en tabla 1 y tabla 2, cuenta2 me da lo mismo que cuenta1.
¿Alguna sugerencia?
GRacias y un saludo.
JL
Valora esta pregunta


0