Ver Mensaje Individual
  #11 (permalink)  
Antiguo 19/12/2008, 02:17
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: como puedo hacer esta consulta

Si no me he equivocado con los campos (no la he probado), esta consulta te sacará el orden de clasificación de la carrera cuyo id_carrera es 2.

Código sql:
Ver original
  1. SELECT p.piloto, SUM( cl.puntosposicion ) puntos
  2. FROM `clasificaciones` cl
  3. INNER JOIN pilotos p ON cl.refidpiloto = p.id_piloto
  4. INNER JOIN carreras ca ON cl.refidcarrera = ca.id_carrera WHERE ca.id_carrera =2
  5. GROUP BY p.id_piloto
  6. ORDER BY puntos DESC

Si quieres la suma total de todas las carreras
Código sql:
Ver original
  1. SELECT p.piloto, SUM( cl.puntosposicion ) puntos
  2. FROM `clasificaciones` cl
  3. INNER JOIN pilotos p ON cl.refidpiloto = p.id_piloto
  4. INNER JOIN carreras ca ON cl.refidcarrera = ca.id_carrera
  5. GROUP BY p.id_piloto
  6. ORDER BY puntos DESC

Si quieres las de un año o temporada

Código sql:
Ver original
  1. SELECT p.piloto, SUM( cl.puntosposicion ) puntos
  2. FROM `clasificaciones` cl
  3. INNER JOIN pilotos p ON cl.refidpiloto = p.id_piloto
  4. INNER JOIN carreras ca ON cl.refidcarrera = ca.id_carrera WHERE ca.temporada='2008-2009'
  5. GROUP BY p.id_piloto

Si por equipos
Código sql:
Ver original
  1. SELECT e.quipo, SUM( cl.puntosposicion ) puntos
  2. FROM `clasificaciones` cl
  3. INNER JOIN pilotos p ON cl.refidpiloto = p.id_piloto INNER JOIN equipos e ON p.refidequipo = e.id_equipo
  4. INNER JOIN carreras ca ON cl.refidcarrera = ca.id_carrera GROUP BY p.id_equipo
  5. ORDER BY puntos DESC

Y así...

Claro, esto te da el orden. Para ponerle 1º, 2º etc, yo te aconsejaría que lo hicieras con programación. Pero eso va después y la consulta la deberás hacer en el foro de tu programa.