еще мы же в CompanyType получается выводим Cross через CollectionType ?
если вам не нужно, это еще не значит, что оно никому не нужно.
Глобальные переменные — злов данном случае не уместно, как по мне.
Проблема в часовом поясе, исключите проблему, то есть уберите зависимость от часового пояса
SELECT *, (
IF (`a1` = 'e', 1, 0) +
IF (`a2` = 'e', 1, 0) +
IF (`a3` = 'e', 1, 0) +
IF (`a4` = 'e', 1, 0) +
IF (`a5` = 'e', 1, 0) +
IF (`a6` = 'e', 1, 0) +
IF (`a7` = 'e', 1, 0) +
IF (`a8` = 'e', 1, 0)
) as `weight`
FROM `results`
ORDER BY `weight` DESC;