Рис.18. Форма для запроса IV.
Рис.19. Результат выполнения запроса при выборе отличников.
Код программы для кнопки «Отлично»:
select * from Students_2007_Semestr1 into cursor cur
n_all = reccount()
select * from Students_2007_Semestr1 into cursor cur where Students_2007_Semestr1.оценка_1 = "5" and Students_2007_Semestr1.оценка_2 = "5" and Students_2007_Semestr1.оценка_3 = "5"
n_old = reccount()
res = (n_old / n_all)*100
select * from Students_2007_Semestr1 into cursor cur ;
where Students_2007_Semestr1.оценка_1 = "5" and Students_2007_Semestr1.оценка_2 = "5" and Students_2007_Semestr1.оценка_3 = "5" and Students_2007_Semestr1.обучение = 1
n_budjet = reccount()
res_1 = (n_budjet / n_all)*100
select * from Students_2007_Semestr1 into cursor cur ;
where Students_2007_Semestr1.оценка_1 = "5" and Students_2007_Semestr1.оценка_2 = "5" and Students_2007_Semestr1.оценка_3 = "5" and (Students_2007_Semestr1.обучение = 2 or Students_2007_Semestr1.обучение = 3)
n_kontrakt = reccount()
res_2 = (n_kontrakt / n_all)*100
MessageBox("Доля отличников: " + str (res) + "% " + "(" + str(n_old) + ") " + chr(13) + "из них бюджетников: " + str (res_1) + "% " + str(n_budjet) + chr(13) + "контрактников: " + str (res_2) + "% " + str(n_kontrakt))
V. Найти студентов и их количество, которым продлена сессия в связи с болезнью, с усиленным учебно-тренировочным процессом, по другим причинам (рис.20-21):
Рис.20.Форма для запроса V.
Текст программы для кнопки «в связи с усиленным учебно-тренировочным процессом»:
select Students_2007_semestr1.фамилия, Students_2007_semestr1.имя, Students_2007_semestr1.отчество,;
Students_2007_semestr1.курс, Students_2007_semestr1.группа, Students_2007_semestr1.продление_сессии as Причина_продления_сессии;
from Students_2007_Semestr1;
where Students_2007_semestr1.продление_сессии = "тренировки"
select * from Students_2007_Semestr1 into cursor cur_1
n_all_1 = reccount()
select * from Students_2007_Semestr1 into cursor cur_1 ;
where Students_2007_semestr1.продление_сессии = "тренировки"
n_old_1 = reccount()
res_1 = (n_old_1 / n_all_1)*100
MessageBox("Доля студентов, продливших сессию в связи с" +chr(13)+ "усиленным учебно-тренировочным процессом " + str (res_1) + "% " + chr(13) + "количество: " + str(n_old_1) )
Рис.21. Результат выполнения запроса V.
VI. Найти студентов, чья стипендия больше, чем средняя стипендия студентов заданного курса или факультета (рис.22, 23):
SELECT AVG(Students_2007_semestr1.стипендия) as "Средняя_стипендия" ;
FROM fakultet!Students_2007_semestr1 ;
WHERE Students_2007_semestr1.курс = val(thisform.pageframe1.Page3.pageframe1.Page6.Combo1.value);
select Students_2007_semestr1.фамилия, Students_2007_semestr1.имя, Students_2007_semestr1.отчество,;
Students_2007_semestr1.курс, Students_2007_semestr1.группа, Students_2007_semestr1.стипендия;
from Students_2007_Semestr1;
where (Students_2007_semestr1.стипендия > (SELECT AVG(Students_2007_semestr1.стипендия);
FROM fakultet!Students_2007_semestr1 ;
WHERE Students_2007_semestr1.курс = val(thisform.pageframe1.Page3.pageframe1.Page6.Combo1.value)));
Рис.22. Форма для запроса VI.
Рис.23. Результат выполнения запроса VI.
VII. Найти студентов и их количество, находящихся в академическом отпуске. Сколько из них бюджетников, сколько контрактников (рис.24, 25):
Рис.24. Форма для запроса VII.
Рис.25. Результат выполнения запроса VII.
Код программы, закреплённой за соответствующей кнопкой для выполнения запроса:
select * from Students_2007_Semestr1 into cursor cur
n_all = reccount()
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.