Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/05/2011, 13:48
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: SELECT con max en clausul WHERE

Hola Ktulu:

No sé si entendí bien lo que quieres hacer, tal vez si hubieras incluido algunos datos de ejemplo podría verse de manera más clara lo que necesitas, pero a ver si más o menos esto es lo que necesitas:

Código MySQL:
Ver original
  1. mysql> create table TuTabla (ID int, DESCRIPCION varchar(10), TIPO int);
  2. Query OK, 0 rows affected (0.09 sec)
  3.  
  4. mysql> insert into TuTabla values
  5.     -> (1, '0.1', 0),(2, '0.2', 0),(3, '1.1', 1),(4, '1.2', 1),(5, '2.1', 2),
  6.     -> (6, '2.2', 2),(7, '3.1', 3),(8, '3.2', 3),(9, '4.1', 4),(10, '4.2', 4),
  7.     -> (11, '5.1', 5),(12, '5.2', 5);
  8. Query OK, 12 rows affected (0.03 sec)
  9. Records: 12  Duplicates: 0  Warnings: 0
  10.  
  11. mysql> select * from TuTabla;
  12. +------+-------------+------+
  13. | ID   | DESCRIPCION | TIPO |
  14. +------+-------------+------+
  15. |    1 | 0.1         |    0 |
  16. |    2 | 0.2         |    0 |
  17. |    3 | 1.1         |    1 |
  18. |    4 | 1.2         |    1 |
  19. |    5 | 2.1         |    2 |
  20. |    6 | 2.2         |    2 |
  21. |    7 | 3.1         |    3 |
  22. |    8 | 3.2         |    3 |
  23. |    9 | 4.1         |    4 |
  24. |   10 | 4.2         |    4 |
  25. |   11 | 5.1         |    5 |
  26. |   12 | 5.2         |    5 |
  27. +------+-------------+------+
  28. 12 rows in set (0.00 sec)
  29.  
  30. mysql> select * from TuTabla where id not in (
  31.     -> select max(id) id from TuTabla where tipo != 0 group by TIPO
  32.     -> );
  33. +------+-------------+------+
  34. | ID   | DESCRIPCION | TIPO |
  35. +------+-------------+------+
  36. |    1 | 0.1         |    0 |
  37. |    2 | 0.2         |    0 |
  38. |    3 | 1.1         |    1 |
  39. |    5 | 2.1         |    2 |
  40. |    7 | 3.1         |    3 |
  41. |    9 | 4.1         |    4 |
  42. |   11 | 5.1         |    5 |
  43. +------+-------------+------+
  44. 7 rows in set (0.00 sec)

Si observas para cada tipo (0 a 5) hay dos registros, en la salida aparecen los dos registros para el tipo 0 y de los tipos 1 a 5 se excluyen los que tienen el id máximo. Según lo que entendí esto es lo que necesitas, pero si no es así, te pido que nos pongas algunos datos de ejemplo, para poder hacer pruebas.

Saludos
Leo.