Llevo tiempo intentando solucionar una consulta que me trae de cabeza, no he visto nada en los foros ni en los tutoriales de mysql ni php. El problema es el siguiente:
Tengo una tabla en la que guardo los registros de unas puntuaciones que consiguen deportistas en diversas pruebas durante el año, el total de pruebas que se pueden disputar son 32 pero solo se contabilizan las 25 mejores puntuaciones conseguidas.
He conseguido sacar por pantalla una tabla con las puntuaciones y los deportistas, y sumar las 32, pero no se como hacer para sumar solo las 25 mejores de cada uno.
Mi idea era crear unas tablas temporales con los nombres de los deportistas (sacandolos de un consulta) y en ellas meter los 25 primeros registros ordenados de mallor a menor, luego hacer una suma de los registros y mostrarlos, pero no lo he conseguido.
Código PHP:
$nobresciclistas=mysql_query("select ciclista from $tabla where ano = 2009 group by ciclista", $conexion);
while ($row1=mysql_fetch_array($nobresciclistas))
{
mysql_query("CREATE TEMPORARY TABLE $row1[0] AS (SELECT $clas3 AS total FROM $tabla WHERE ciclista=$row1[0] GROUP BY ruta ORDER BY total DESC LIMIT 25)", $conexion);
$suma=mysql_query("SELECT SUM(total) FROM $row1[0]", $conexion);
while ($row2=mysql_fetch_array($suma))
{
echo '$row1[0], $row2[0]';
}
}