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

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

Знающих людей прошу задержаться.
Я вызвался добровольцем облегчить работу учителей и без вашей помощи не обойтись!
В школе есть база данных оценок, и надо сформировать отчет по одному предмету. Данные не явные и их приходиться собирать по кусочкам. В итоге должно получиться вот это:
19595de2a6b74f7cbf55fc3717c5b979.png
Столбец Класс статичен, и не меняет значений
Столбец Количество это количество учащихся. Мне помогли составить вот такой запрос:
SELECT concat('<a target="_new" href="%%WWWROOT%%/course/view.php?id=',course.id,'">',course.fullname,'</a>') AS Course,
COUNT(course.id) AS Students
FROM prefix_role_assignments AS asg
JOIN prefix_context AS context ON asg.contextid = context.id AND context.contextlevel = 50
JOIN prefix_user AS USER ON USER.id = asg.userid
JOIN prefix_course AS course ON context.instanceid = course.id
WHERE asg.roleid = 5 
AND course.fullname LIKE '%Қазақ тілі%'

но не отображает сумму учащихся во всем 6 или 7 классах;
Остальные блоки однотипные. Criterion A имеет в таблице mrs_grade_items.idnumber = 'a1', а оценка лежит в таблице prefix_grade_grades.finalgrade которых связывает поле prefix_grade_grades.itemid
Здесь нужна сумма всех значений с условием IF prefix_grade_grades.finalgrade <=2 то вписываем в поле "1-2"
  • Вопрос задан
  • 2675 просмотров
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
concat('<a target="_new" href="%%WWWROOT%%/course/view.php?id=

ААААААААААААААааааааааааааааааа
Kill it with fire!!!!!
SQL запрос должен возвращать данные. Данные, а не html верстку.

Что касается самого вопроса - что бы посчитать сумму вам нужны агрегирующие функции: group by, sum.
dev.mysql.com/doc/refman/5.0/en/group-by-functions.html
Что то более полезное без структуры базы сказать нельзя.
Ответ написан
Комментировать
@IvanBus
Я программист C#, решил погрузиться в Web
Хотелось бы видеть даиграмму БД, чтобы хоть чем-нибудь помочь)
Ответ написан
Комментировать
@Arik
Қазақ тілі? =)
На первый вид не хватает LEFT JOIN и GROUP BY.
Оставьте почту или как с вами связаться, вместе может придумаем что нибудь
Ответ написан
Ваш ответ на вопрос

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

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