Ver Mensaje Individual
  #4 (permalink)  
Antiguo 05/10/2013, 16:06
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: 17 años, 1 mes
Puntos: 2658
Respuesta: SUM o GROUP BY?

Mira, por lo poco que se entiende tu consulta, entraña ciertos riesgos de datos inconsistentes, a causa de posibles relaciones de cardinalidad múltiple.
Me explico.
Tu consulta es esta (aplicando alias para limpiar el codigo, te lo recomiendo):
Código MySQL:
Ver original
  1.     re.result_points,
  2.     ri.rider_name,
  3.     gp.gp_name,
  4.     re.result_position,
  5.     DATE_FORMAT(gp.gp_date, '%d/%m/%Y') gp_date,
  6.     ri.rider_number,
  7.     gp.gp_id,
  8.     SUM(re.result_points) points
  9. FROM tbl_result re
  10.     INNER JOIN tbl_rider ri ON re.result_rider = ri.rider_id
  11.     INNER JOIN tbl_category c ON c.category_id = ri.rider_category
  12.     INNER JOIN tbl_gp gp ON gp.gp_id = re.result_gp
  13.     YEAR(gp.gp_date) = 2013
  14.     AND c.category_id = 1
  15.     points DESC,
  16.     gp.gp_date ASC,
  17.     re.result_points DESC,
  18.     re.result_position ASC
Hay dos situaciones que pueden generar problemas:
1) Si al menos uno de los INNER JOIN se está aplicando a una relación 1:N o bien N:N, el valor de result_points se repetirá N veces y se producirán sumatorias incorrectas.
2) El LIMIT 5 se resuelve en MySQL devolviendo los 5 primeros valores simples encontrados, sin importar si corresponden realmente a la posición que ocupan. Es decir, puede dar resultados erroneos.
Creo que para que devuelva los resultados que esperas (y que pareciera posible), la consulta no es tan simple como la has escrito. A mi entender, puede requerir cierta elaboración... pero no nos estás brindando los datos necesarios para poder aconsejarte.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)