Recurro ha ustedes porque necesito pasar algo que hasta ahora realizaba con PHP pero que estoy casi seguro que se puede hacer directamente en la consulta SQL ahorrando bastante tiempo y codigo. Pero, obviamente, mis conocimientos no me permiten llegar a la solucion deseada.
El tema es el siguiente: tengo una tabla donde guardo datos de jugadores de un torneo de futbol fecha a fecha. La estructura de la tabla "estadisticas" de la base (Mysql por cierto) es mas o menos asi:
-------------------------------------------------------
id | jugador | equipo | fecha | dato | valor | campeonato
-------------------------------------------------------
Donde fecha no es la de dia sino la fecha del torneo (1º fecha, 2º fecha, etc).
Hay 3 tipos de "dato": 1 = goles - 2 = tarjetas rojas - 3 = amarillas los cuales van acompañoados de sus valores correspondientes (dato: 1 y valor: 2 == 2 goles).
y lo que yo necesito hacer es sacar todos los jugadores donde la suma de los distintos "valor" correspondientes al dato 3 sea multiplo de 3 y que la fecha del ultimo dato sea igual a la variable $fecha_actual.
No se si sere claro
...
Hasta ahora lo que hacia era sacar todos los datos asi
Código:
$sql="SELECT estadisticas.jugador, estadisticas.fecha, ";
$sql.="jugadores.nombre, equipos.nombre as nombre_equipo, grupo, SUM(valor) as total ";
$sql.="FROM estadisticas ";
$sql.="LEFT JOIN equipos ON (estadisticas.equipo = equipos.id) ";
$sql.="LEFT JOIN jugadores ON (estadisticas.jugador = jugadores.id) ";
$sql.="WHERE estadisticas.dato='3' and fecha<='$fecha_actual' ";
$sql.="and estadisticas.campeonato='$torneo_actual' and grupo='A' ";
$sql.="GROUP BY jugador ";
$sql.="ORDER BY total DESC, grupo ASC, jugador ASC, fecha DESC ";
y guardaba la info en un array segun algunos condicionales, pero eso me parece muy impractico y seguramente consume muchos recurso.
Si alguien tiene alguna idea se la agradesco desde ya.