Лабораторная работа № 6.
2. «СОЗДАНИЕ И ИСПОЛЬЗОВАНИЕ ЗАПРОСОВ»
2.6. ЗАДАНИЕ 14. Построение итоговых запросов с использованием сложных условий отбора
Если возникает необходимость отфильтровать записи еще до выполнения вычислений, а условие отбора применяется не для поля группировки, в строке Групповая операция такого поля следует выбрать опцию Условие. Например, необходимо в каждой группе подсчитать количество студентов, сдавших экзамены за первый семестр без задолженностей и троек – количество «хорошистов». При этом вначале должны быть отобраны записи (студенты), удовлетворяющие указанному критерию, затем они должны быть сгруппированы по полю Nгр и по каждой группе уже будет подсчитано количество попавших в нее студентов. Бланк такого запроса и результаты его работы представлены на рис. 34.
- Создайте запрос, бланк которого показан на рис. 34. Обратите внимание, что программа Access автоматически снимает флажок опции Вывод на экран для полей, к которым применено условие отбора. Дайте запросу имя Хорошисты групп
- Модифицируйте запрос Хорошисты групп так, чтобы он выдавал данные только для одной группы, т.е. введите параметр для названия группы.
- Создайте запрос, определяющий в каждой группе количество студентов, имеющих задолженности за I семестр.
- Создайте запрос, определяющий количество студентов, претендующих на повышенную стипендию (сдавших зачет и имеющих оценки «5» по двум экзаменам, например, по предметам 1_з,2_э1,2_э2).
- Создайте запрос, определяющий список студентов II курса (группы А‑2 и Б–2), которые могут получать стипендию. Критерий для обора таких студентов следующий: это студенты, которые обучаются на бюджетной основе и не имеют задолженностей, оценки по двум экзаменам II семестра (2_э1 и 2_э2) «4» и «5» ИЛИ имеют льготы (в поле Lgoty – да), которые дают им возможность получать стипендию, если среди оценок на экзаменах есть тройки. Дайте запросу имя Список II курса на стипендию.
а)
б)
Рис. 34. а) Бланк запроса, в котором критерий отбора записей будет
применен до выполнения вычислений. б) Результаты работы запроса:
показано, сколько «хорошистов в каждой группе»
6.На основе запроса Список на стипендию II курса создайте запрос, определяющий количество студентов в каждой группе, получающих стипендию. Дайте полю с количеством студентов подпись Количество, а самому запросу – имя Стипендия II курса. Для реализации группировки необходимо в поле запроса добавить таблицу Учетная карта, которая даст возможность использовать имеющиеся между таблицами связи. (Поэкспериментируйте – посмотрите, как работает запрос, когда есть таблицы Учетная карта, и когда она отсутствует).
7. Усложним запрос, включив в него возможность подсчитывать общую сумму стипендии, выделяемой на каждую группу. Размер стипендии ввести как параметр. Для того, чтобы в выражении для стипендии записать формулу, необходимо ввести имя поля Count_Ngr, в котором подсчитывается количество студентов в группе, получающих стипендию. Поскольку в бланке запроса это имя не видно (оно выдается только при просмотре результатов запроса, да и то в случае, если не дана другая подпись полю), то для записи выражения лучше воспользоваться Построителем выражений и взять требуемое поле из раскрывающегося списка полей запроса Стипендия II курса (рис. 35).
Как видно из этого рисунка, размер стипендии вводится параметром в само выражение, её значение будет запрашиваться при запуске запроса.
Для того, чтобы запрос подсчитывал стипендию согласно построенному выражению, необходимо в строке Групповая операция поля Стипендия выбрать опцию Выражение.
8. Посмотрите, как работает созданный Вами запрос.
Рис. 35. Использование Построителя выражений для создания
вычисляемого поля Стипендия на основе поля группировки Count_Ngr.
Обратите внимание, что запрос Стипендия II курса, открытый в базе в режиме конструктора, показан в первом столбце построителя
отдельно от всех других запросов, что очень удобно при построении выражения.