в основном в следующих строках, где у меня есть два случая, он продолжает возвращать ELSES, даже если track_id совпадает в таблице статистики драйверов для этого driver_id, поскольку это то, для чего я группирую запрос. Если я делаю это неправильно, то мне нужно то, что если в таблице driver_stats нет строк, тогда он получает значение из таблицы драйверов, и прирост устанавливается на 0. Любая помощь очень ценится.
Case s.value When track_id = (SELECT MAX(track_id) FROM driver_stats) Then s.value Else d.value End AS value,
Case s.growth When track_id = (SELECT MAX(track_id) FROM driver_stats) Then s.growth Else 0 End AS growth,
**//FULL QUERY**
SELECT d.drivers_id, d.drivername, t.code,
Case s.value When track_id = (SELECT MAX(track_id) FROM driver_stats) Then s.value Else d.value End AS value,
Case s.growth When track_id = (SELECT MAX(track_id) FROM driver_stats) Then s.growth Else 0 End AS growth,
SUM(IF(qual_pos = '1', 1,0)) AS poles,
SUM(IF(race_pos <= '3', 1,0)) AS podiums,
SUM(IF(race_pos = '1', 1,0)) AS victories,
COALESCE(SUM(overtakes),0) AS overtakes,
SUM(Case When s.track_id = (SELECT MAX(track_id) FROM driver_stats) Then points Else 0 End) lastracepoints,
COALESCE(SUM(points),0) AS points
FROM drivers d
Left Join driver_stats s
On s.drivers_id = d.drivers_id
Left Join teams t
On t.team_id = d.team_id
Group By d.drivers_id
ORDER BY d.drivers_id
Для сведения: таблица driver_stats имеет строку для каждого driver_id и для каждого track_id.