Ver Mensaje Individual
  #3 (permalink)  
Antiguo 26/07/2013, 12:01
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: registros con campo diferente

Hola catpaw:

En tu post colocas esto:

Cita:
En teoria deberian tener siempre la misma clave, pero ya sabemos que siempre hay fallos en el manejo de datos etc aveces muy ajenos a nosotros, entonces por cuestiones diversas se puede dar el caso que haya un mismo usuario con diferente clave.
Esto no es teoría, así debe ser SIEMPRE... el que hables de "fallos" en el manejo de los datos es una cosa terrible, y no debería suceder... en lugar de tratar de hacer consultas para tratar de corregir la información deberías ir a fondo y evitarlos desde un inicio... un buen modelo de BD debe evitar este tipo de acciones... Para tal efecto te puedes valer de la implementación de elementos como TRIGGERS o PROCEDIMIENTOS ALMACENADOS, para evitar que se dupliquen usuarios con claves distintas. Ojo con eso.

Ahora bien, con respecto a tu pregunta, en realidad no hay necesidad de hacer uan subconsulta y agrupar dos veces... lo puedes hacer desde el primer SELECT, es decir, hacer algo como esto:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla;
  2. +--------+------------+------+-------+
  3. | no_usu | usuario    | mes  | clave |
  4. +--------+------------+------+-------+
  5. | USU01  | trollencio | ene  |     1 |
  6. | USU01  | trollencio | feb  |     1 |
  7. | USU02  | fukencia   | ene  |     2 |
  8. | USU02  | fukencia   | feb  |     2 |
  9. | USU02  | fukencia   | ene  |     5 |
  10. | USU02  | fukencia   | feb  |     5 |
  11. +--------+------------+------+-------+
  12. 6 rows in set (0.00 sec)
  13.  
  14. mysql> SELECT usuario, COUNT(DISTINCT clave) total
  15.     -> FROM tabla
  16.     -> GROUP BY usuario
  17.     -> HAVING total > 1;
  18. +----------+-------+
  19. | usuario  | total |
  20. +----------+-------+
  21. | fukencia |     2 |
  22. +----------+-------+
  23. 1 row in set (0.03 sec)

El resultado es el mismo y la consulta es más simple.

Haz la prueba para ver si esto es lo que necesitas.

Saludos
Leo.