- •Практическая работа № 5
- •«Создание запросов с помощью конструктора запросов»
- •Создание запроса из двух таблиц.
- •Задание 8. Выберите из базы данных всех студентов, которые сдали сессию на "хорошо" и "отлично". Для этого выполните следующие действия:
- •Создание диаграммы по одномерной перекрестной таблице.
Создание запроса из двух таблиц.
Задание 7: К ранее созданному запросу добавьте результаты экзаменационной сессии студентов.
Для этого выполните следующие действия:
В окно конструктора запросов добавьте таблицу «Сессия», нажав кнопку Add Table панели инструментов Query Designer и выбрав из списка нужную таблицу.
На вкладке Fields из списка Available fields в список Selected fields добавьте поля сессия.eczam1, сессия.eczam2, удалите поле анкета.g_rogd и поле, содержащее адрес и телефон.
На вкладке Filter удалите все условия фильтрации записей. В поле Field Name выберите Анкета.nom. В списке Criteria выберите значение (==).В столбце Example введите Сессия.nom
На вкладке Miscellaneous поставьте флажок No duplicates, чтобы не происходило дублирование записей в запросе.
Запустите запрос на выполнение.
Изменение наименований полей в запросе.
Visual FoxPro по умолчанию присваивает полям результирующей таблицы запроса наименования, которые имеют поля исходной таблицы. Для изменения наименования полей в запросе необходимо выполнить следующие действия:
Перейдите на вкладку Fields.
Введите в поле Function and expressions анкета.fio AS ФИО.
Нажмите кнопку Add.
Кнопкой Remove удалите анкета.fio из списка Selected fields.
Аналогично измените наименования остальных полей.
Запустите запрос на выполнение. Просмотрите и закройте запрос.
Сохраните созданный запрос под именем Анкета-Сессия.
Создание запроса из двух таблиц с использованием условий выборки.
Задание 8. Выберите из базы данных всех студентов, которые сдали сессию на "хорошо" и "отлично". Для этого выполните следующие действия:
Сохраните все условия запроса задания 7.
Перейдите на вкладку Filter.
Во второй строке условий фильтрации в поле Field Name выберите из списка Сессия.eczam1.
В поле Criteria выберите операцию >=.
В поле Example укажите 4.
Аналогично создайте третью строку для поля таблицы Сессия.eczam2.
Запустите запрос на выполнение. Просмотрите и закройте запрос.
Сохраните созданный запрос под именем Хорошисты.
Создание одномерной перекрестной таблицы.
Задание 9. Подсчитайте количество "хорошистов" в каждой группе.
Для этого выполните следующие действия:
На вкладке Fields из окна Selected fields удалите все поля кнопкой Remove All.
Из поля Available fields выберите поле Анкета.group и нажмите на кнопку Add.
Вызовите построитель выражений рядом с окном Functions and expressions и в его окне постройте выражение COUNT(сессия.eczam1). Дайте обоим полям русские наименования, как было описано в пункте 14 (“Группа”,“Количество хорошистов”)
Перейдите на вкладку Join, на которой отображаются связи между таблицами. Выделите связь между таблицами Анкета и Сессия и удалите ее кнопкой Remove (это необходимо для корректной работы функции COUNT).
Перейдите на вкладку Filter. Там должны быть заданы следующие условия фильтрации:
Анкета.nom == Сессия.nom AND
Сессия.eczam1 >= 4 AND
Сессия.eczam2 >= 4
Перейдите на вкладку Order By и укажите, что данные должны упорядочиваться по значению поля Анкета.group.
Перейдите на вкладку Group By и укажите, что данные должны группироваться по значению поля Анкета.group.
Запустите запрос на выполнение. Просмотрите и закройте запрос.
Сохраните созданный запрос под именем Хорошисты1.