![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вычисление среднего балла [D7]
Снежинка © (2008-04-13 19:01:00)Привет всем!
У меня такая проблема, нужно вычислить средний балл по группам. Но когда я пишу код вот такой
begin
with Query1 Do
begin
Close;
SQL.Clear;
SQL.Add('Select avg(ocenka), gruppa');
SQL.Add ('From Student,Ocenki,Gruppa');
SQL.Add('Where Ocenki.idstud=Student.idstud and Gruppai.idgrup=Student.idgrup ');
Open;
if Query1.RecordCount<>0 then
begin
DataSource1.DataSet:=Query1 ;
end ;
end;
end;
Вычисляется общий средний балл(на все группы) . Есть таблицы студенты(idstud, fam, ima,idgrup),группа(idgrup,gpuppa),оценки(idstud, semestr, ocenka). Между ними есть связь. Не знаю как правильно сделать Помогите мне пожалуйста.Заранее спасибо
sniknik (2008-04-13 22:07:00) [1]спам
Павел Калугин (2008-04-13 21:28:00) [2]> [1] Jack128_ (13.04.08 21:26)
только вот макс лишний :)
select avg(o.ocenka), g.idgrup, g.gruppa
from ocenki o
join student s on s.idstup = o.idstud
join Gruppai g on d.idgrup = s.idgrup
group by g.idgrup, g.gruppa
Jack128_ (2008-04-13 21:26:00) [3]По идее - твой запрос вообще - не должен выполняться, так как нет кляузы group by.
select avg(o.ocenka), g.idgrup, max(g.gruppa)
from ocenki o
join student s on s.idstup = o.idstud
join Gruppai g on d.idgrup = s.idgrup
group by g.idgrup