Программирование в среде Visual Fox Pro. База данных «Факультет», страница 3

По году рождения:

SELECT fakult.факультет, Students_2007_Semestr1.фамилия, Students_2007_Semestr1.имя, Students_2007_Semestr1.отчество, ;

     Students_2007_Semestr1.дата_рождения ;

FROM fakultet!Students_2007_semestr1 ;

   INNER JOIN fakultet!fakult;

                            ON  fakult.id_fakult = Students_2007_semestr1.id_fakult ;

                            where fakult.факультет = thisform.Pageframe1.Page2.Combo1.value;

                            ORDER BY Students_2007_semestr1.дата_рождения

Рис.11. Результат выполнения запроса.

I.         Найти студентов групп, сдавших зачёт или экзамен по заданной дисциплине с заданной оценкой (рис. 12-13):

Рис.12. Форма для запроса I.

SELECT Students_2007_Semestr1.фамилия, Students_2007_Semestr1.имя, Students_2007_Semestr1.отчество, ;

     fakult.факультет, Students_2007_Semestr1.группа, predmet_1.дисциплина as Предмет_1,;

     Students_2007_Semestr1.оценка_1, predmet_2.дисциплина as Предмет_2, Students_2007_Semestr1.оценка_2,;

     predmet_3.дисциплина as Предмет_3, Students_2007_Semestr1.оценка_3;

FROM fakultet!Students_2007_Semestr1 ;

INNER JOIN fakultet!predmet_1;

                            ON  Students_2007_semestr1.предмет_1 = Predmet_1.id_predmet;

INNER JOIN fakultet!predmet_2;

                            ON  Students_2007_semestr1.предмет_2 = Predmet_2.id_predmet;

INNER JOIN fakultet!predmet_3;

                            ON  Students_2007_semestr1.предмет_3 = Predmet_3.id_predmet;

INNER JOIN fakultet!fakult;

                            ON  fakult.id_fakult = Students_2007_semestr1.id_fakult ;

                            where (Students_2007_Semestr1.группа = thisform.Pageframe1.Page3.Pageframe1.Page1.Check1.caption and thisform.Pageframe1.Page3.Pageframe1.Page1.Check1.value =1;

                            or Students_2007_Semestr1.группа = thisform.Pageframe1.Page3.Pageframe1.Page1.Check2.caption and thisform.Pageframe1.Page3.Pageframe1.Page1.Check2.value =1;

                            or Students_2007_Semestr1.группа = thisform.Pageframe1.Page3.Pageframe1.Page1.Check3.caption and thisform.Pageframe1.Page3.Pageframe1.Page1.Check3.value =1);

                            and (predmet_1.дисциплина = thisform.Pageframe1.Page3.Pageframe1.Page1.Combo1.value and Students_2007_Semestr1.оценка_1 = thisform.Pageframe1.Page3.Pageframe1.Page1.List1.value);

                            or (predmet_2.дисциплина = thisform.Pageframe1.Page3.Pageframe1.Page1.Combo1.value and Students_2007_Semestr1.оценка_2 = thisform.Pageframe1.Page3.Pageframe1.Page1.List1.value);

                            or (predmet_3.дисциплина = thisform.Pageframe1.Page3.Pageframe1.Page1.Combo1.value and Students_2007_Semestr1.оценка_3 = thisform.Pageframe1.Page3.Pageframe1.Page1.List1.value);                                         

                                                        

Рис.13. Результат выполнения запроса I.                             


II.        Найти студентов заданного факультета, заданных групп или курса, сдавших сессию на отлично, без троек, без двоек (рис.14, 15):

Рис.14. Форма для запроса II.

Текст программы для кнопки «без троек» при выборе групп:

SELECT Students_2007_Semestr1.фамилия, Students_2007_Semestr1.имя, Students_2007_Semestr1.отчество, ;

     fakult.факультет, Students_2007_Semestr1.группа, predmet_1.дисциплина as Предмет_1,;

     Students_2007_Semestr1.оценка_1, predmet_2.дисциплина as Предмет_2, Students_2007_Semestr1.оценка_2,;

     predmet_3.дисциплина as Предмет_3, Students_2007_Semestr1.оценка_3;

FROM fakultet!Students_2007_Semestr1 ;

INNER JOIN fakultet!predmet_1;

                            ON  Students_2007_semestr1.предмет_1 = Predmet_1.id_predmet;

INNER JOIN fakultet!predmet_2;

                            ON  Students_2007_semestr1.предмет_2 = Predmet_2.id_predmet;

INNER JOIN fakultet!predmet_3;

                            ON  Students_2007_semestr1.предмет_3 = Predmet_3.id_predmet;