Ver Mensaje Individual
  #5 (permalink)  
Antiguo 10/04/2011, 06:49
Galis
 
Fecha de Ingreso: abril-2011
Mensajes: 12
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Consulta complicada SQL (para mi)

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Cuando usas MAX() lo que hace es buscar el mayor de los valores de toda la tabla. Te devolverá siempre un sólo registro, a menos que haya un agrupamiento, caso en el cual devolverá el mayor de cada grupo. Por eso tu consulta devuelve siempre 12.
LIMIT opera si y sólo si la consulta devuelve más de un registro que cumpla con la condición, pero como en este caso eso es un sólo registro...

El error consiste en suponer que LIMIT opera antes que MAX(). No es así. Para cuando se ejecuta el LIMIT, la verificación de condiciones ya se realizó.

Para que realice lo que necesitas lo primero que hay que hacer es obtener el grupo completo de registros a evaluar, cosa que se tiene que hacer con una subconsulta. Esa subconsulta genera una tabla derivada (en memoria, obtenida por consulta) de sólo 5 registros y es a esos registros a los que s eaplica el MAX().

¿Se entiende?
Se entiende perfecto, muchisimas gracias y RESUELTO!