Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [SQL] Составить запрос


Автор: gambit 7.10.2010, 12:58
http://ipicture.ru/

Вывести фамилии всех студентов со средним баллом по всем предметам. Отсортировать список по убыванию среднего балла.

Вывести фамилии всех студентов, у которых есть хоть одна оценка 2 по любому из предметов.

Заранее спасибо, с меня плюсы и много благодарностей.

Автор: gambit 7.10.2010, 14:35
UPD

Цитата(gambit @  7.10.2010,  12:58 Найти цитируемый пост)
Вывести фамилии всех студентов, у которых есть хоть одна оценка 2 по любому из предметов.

сделал:
Код

SELECT        Students.name
FROM            Subject JOIN
                         Evaluation ON Subject.id = Evaluation.idSubject AND Subject.id = Evaluation.idSubject AND Evaluation.[value] = 2 JOIN
                         Students ON Evaluation.idStud = Students.id

но, если у студента две и более двоек, то он выводиться 2 и более раз. Как ограничить?

Автор: Lim4 7.10.2010, 18:04
Для заданных запросов третья таблица не нужна.

Вот первый
Код

Select students.name, avg(evaluation.`value`) as sredn
from students, evaluation
where students.id = evaluation.idStud
group by students.id
order by  sredn desc; 


А для второго запроса нужно добавить distinct
Код

select distinct  students.name
from students, evaluation
where students.id = evaluation.idStud and `value` = '2';

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)