Ver Mensaje Individual
  #20 (permalink)  
Antiguo 09/10/2015, 13:58
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Mostrar Datos después de un GROUP BY

OK, exactamente por eso te decía que MySQL tiene un comportamiento particular.

En primer lugar, a diferencia de los demás DBMS, te permite agrupar por sólo una parte de los campos del SELECT, mientras que los demás exigen que esté todos los no afectados por las clausulas o funciones agrupadas.
Además también te permite agrupar por campos que NO ESTÁN en el SELECT, cosa que ningún otro DBMS admite.
Pero a esto hay que sumarle un efecto: Como te permite indicar parte de los campos, o campos no seleccionados, lo que puede suceder es que tome el primer valor encontrado en esa tabla para ese campo o campos de agrupamiento, y "pise" todos los demás registros que encuentre, escondiéndolos por decirlo de ese modo.

Por eso, para que devuelva el mayor valor de algo, primero debes ordenar, y recién entonces agrupar. Pero como el ORDER BY no puede ir antes del GROUP BY, entonces hay que hacerlo en una tabla derivada (lo que te puse).

¿Se entiende como es el tema?

Ahora bien, en tu caso el problema se resuelve determinando qué columnas (campos) deben ir en el GROUP BY para permitir que te muestre todos los registros que buscas. Tiene que ser un grupo discriminante, cuyos valores solo cambien en grupo en los registros que deben aparecer.
Lamentablemente tus posteos no son muy claros en ese sentido. Apenas se entienden los datos y sin ellos no podemos hacer pruebas que te sirvan.

¿Probaste la ultima query que te puse? Alli te puse una posibilidad.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)