Ayuda con sentencia SQL
Publicado por David (4 intervenciones) el 22/11/2010 17:51:27
Buenas, espero puedan ayudarme porque no doy conseguido la consulta necesaria para calcular una clasificacion.
Las criterios de ordenacion que debe seguir son:
1º - mayor valoracion
2º - partido ganado
3º - mayor puntuacion
Entonces se supone que en un partido se da una valoracion determinada y los jugadores llevan una puntuacion acumulada.
Los datos que se necesitan están en 4 tablas diferentes :
valoraciones (id, iPartido, idJugador, valoracion)
partidos (id, idParejaLocal, idParejaVisitante,resultadoLocal, resultadoVisitante)
parejas (id, idJugador1, idJugador2)
jugadores (id, nombre, puntosTotales)
Con estos datos necesito obtener un listado de valoraciones ordenadas por los criterios anteriores
Lo máximo a lo que llego es a obtener un listado ordenado por valoracion y puntuacion, pero sin tener en cuenta la victoria del partido...
SELECT jugadores.id as idJugador, jugadores.nombre as nombreJugador, jugadores.puntosTotales as puntosTotales, SUM(valoraciones.valoracion) AS sumaValoracion
FROM valoraciones LEFT JOIN jugadores ON valoraciones.idJugador = jugadores.id
WHERE valoraciones.idPartido = ?
GROUP by jugadores.id, jugadores.apodo, jugadores.puntosATP
ORDER BY 4 DESC, 3 DESC
Espero que me puedan ayudar... si necesitan más datos se los facilito. Muchas gracias!
Las criterios de ordenacion que debe seguir son:
1º - mayor valoracion
2º - partido ganado
3º - mayor puntuacion
Entonces se supone que en un partido se da una valoracion determinada y los jugadores llevan una puntuacion acumulada.
Los datos que se necesitan están en 4 tablas diferentes :
valoraciones (id, iPartido, idJugador, valoracion)
partidos (id, idParejaLocal, idParejaVisitante,resultadoLocal, resultadoVisitante)
parejas (id, idJugador1, idJugador2)
jugadores (id, nombre, puntosTotales)
Con estos datos necesito obtener un listado de valoraciones ordenadas por los criterios anteriores
Lo máximo a lo que llego es a obtener un listado ordenado por valoracion y puntuacion, pero sin tener en cuenta la victoria del partido...
SELECT jugadores.id as idJugador, jugadores.nombre as nombreJugador, jugadores.puntosTotales as puntosTotales, SUM(valoraciones.valoracion) AS sumaValoracion
FROM valoraciones LEFT JOIN jugadores ON valoraciones.idJugador = jugadores.id
WHERE valoraciones.idPartido = ?
GROUP by jugadores.id, jugadores.apodo, jugadores.puntosATP
ORDER BY 4 DESC, 3 DESC
Espero que me puedan ayudar... si necesitan más datos se los facilito. Muchas gracias!
Valora esta pregunta
0