Тут тоже видимо ошибка.
and qza.sumgrades IN
(SELECT
max(qzaS.sumgrades)
FROM prefix_user as uS
JOIN prefix_user_info_data as uiaS ON
uS.id = uiaS.userid and uiaS.fieldid =1
JOIN prefix_user_info_data as uia2S ON
uS.id = uia2S.userid and uia2S.fieldid =3
JOIN prefix_question_attempt_steps as qasS ON
uS.id = qasS.userid
JOIN prefix_question_attempts as qaS ON qasS.questionattemptid =
qaS.id JOIN prefix_quiz_attempts as qzaS ON qzaS.uniqueid = qaS.questionusageid
JOIN prefix_quiz as qzS ON
qzS.id = qzaS.quiz
JOIN prefix_grade_items as giS ON giS.itemname =
qzS.name and
giS.id NOT IN (29)
WHERE qasS.state LIKE 'grade%' and uS.suspended =0 and
uS.id =
u.id group by uS.lastname,
qzS.name )
зачем тут GROUP BY ? Он либо не нужен, либо одно из двух.