Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, não estou conseguindo resolver um problema.
Tenho o código abaixo que pega o resultado das corridas cadastradas e apresenta um ranking para determinado o circuito:
SELECT COUNT(*) AS 'races', SUM(points) AS points, SUM(ranking) AS rank, d.name AS driver_name, d.url AS driver_url,
nat.`iso-3166-alpha2` AS iso, nat.name AS country, nat.url AS nat_url,
ROUND(AVG(r.grid), 2) AS avg_grid, ROUND(AVG(r.position), 2) AS avg_position,
SUM(IF(grid=1, 1, 0)) AS poles,
SUM(IF(position=1, 1, 0)) AS first,
GREATEST(SUM(IF(position=1, 1, 0)), 1) AS wins,
SUM(IF(position=2, 1, 0)) AS second,
SUM(IF(position=3, 1, 0)) AS third,
SUM(IF(fastest_lap_checkbox=1, 1, 0)) AS fastest_lap
FROM
msr_driver d,
msr_formula f,
msr_season s,
msr_driver_races_for dr,
msr_nationality nat,
msr_session n,
msr_event e,
msr_circuit ct,
msr_result r
LEFT JOIN
msr_classification_types c
ON
r.id_classification_types = c.id_classification_types
WHERE
f.shortcode = %s AND
e.id_event = n.event_id AND
ct.id_circuit = e.circuit_id AND
ct.shortcode = %s AND
e.season_id = s.id_season AND
s.formula_id = f.id_formula AND
dr.season_id = s.id_season AND
dr.driver_id = d.id_driver AND
nat.id_nationality = d.nationality_id AND
r.session_id = n.id_session AND n.is_race = 1 AND
r.tsd_id = dr.tsd_id
GROUP BY
d.id_driver
ORDER BY first DESC
O meu "problema" é que ele mostra todos os pilotos que correram naquele circuito. Gostaria que mostrasse apenas os pilotos que estão disputando a atual temporada.
Ou seja, que mostrasse apenas os pilotos em que s.shortcode = 2012, por exemplo. Se eu coloco esse parâmetro no "WHERE" ele retorna apenas os pilotos de 2012, mas também apenas o resultado de 2012.
Eu gostaria que mostrasse apenas os pilotos de 2012, mas o ranking deles naquele circuito, com todos os resultados dos anos anteriores.
Alguém poderia me ajudar?
Grato!
Carregando comentários...