Задать вопрос
@bender3000

Как правильно сформировать SQL запрос?

Мне нужно чтобы из строки timemodified выбирался вариант удовлетворяющий условию timemodified<=1419933851, Но по запросу ниже мне выдает наибольшее значение для одного u.id и вставляет одно и тоже значение для всех предметов закрепленных под u.id
Ниже я привел пример вывода после запроса

32988a8ac6c54951a8b9812db746bdac.pngSELECT u.firstname AS 'First' , u.lastname AS 'Last',
c.fullname AS 'Course',
cc.name AS 'Category',
gi.itemname AS 'Mark name',

ROUND(ggh.finalgrade,2) AS Grade,
MAX(ggh.timemodified)

FROM prefix_course AS c
JOIN prefix_context AS ctx ON c.id = ctx.instanceid
JOIN prefix_role_assignments AS ra ON ra.contextid = ctx.id
JOIN prefix_user AS u ON u.id = ra.userid
JOIN prefix_grade_grades_history AS ggh ON ggh.userid = u.id
JOIN prefix_grade_items AS gi ON gi.id = ggh.itemid
JOIN prefix_course_categories AS cc ON cc.id = c.category

WHERE ggh.source LIKE '%attendance%' AND ggh.finalgrade<85 AND ggh.timemodified<=1419933851
GROUP BY c.fullname
  • Вопрос задан
  • 2437 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@hurgadan
почему у вас в завпросе MAX(ggh.timemodified) и соответственно GROUP BY ? если нужно просто выбрать записи по условию timemodified<=1419933851 группировка не нужна.
вместо
MAX(ggh.timemodified) будет ggh.timemodified
а GROUP BY c.fullname удалите
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы