Печатать эту главуПечатать эту главу

Лабораторная работа № 7. Основы работы в СУБД Microsoft Access. Создание и использование запросов.

2. «СОЗДАНИЕ И ИСПОЛЬЗОВАНИЕ ЗАПРОСОВ»

2.6. ЗАДАНИЕ 14. Построение итоговых запросов с использованием сложных условий отбора

Если возникает необходимость отфильтровать записи еще до выполнения вычислений, а условие отбора применяется не для поля группировки, в строке Групповая операция такого поля следует выбрать опцию Условие. Например, необходимо в каждой группе подсчитать количество студентов, сдавших экзамены за первый семестр без задолженностей и троек – количество «хорошистов». При этом вначале должны быть отобраны записи (студенты), удовлетворяющие указанному критерию, затем они должны быть сгруппированы по полю Nгр и по каждой группе уже будет подсчитано количество попавших в нее студентов. Бланк такого запроса и результаты его работы представлены на рис. 34.

  1. Создайте запрос, бланк которого показан на рис. 34. Обратите внимание, что программа Access автоматически снимает флажок опции Вывод на экран для полей, к которым применено условие отбора. Дайте запросу имя Хорошисты групп
  2. Модифицируйте запрос Хорошисты групп так, чтобы он выдавал данные только для одной группы, т.е. введите параметр для названия группы.
  3. Создайте запрос, определяющий в каждой группе количество студентов, имеющих задолженности за I семестр.
  4. Создайте запрос, определяющий количество студентов, претендующих на повышенную стипендию (сдавших зачет и имеющих оценки «5» по двум экзаменам, например, по предметам 1_з,2_э1,2_э2).
  5. Создайте запрос, определяющий список студентов 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 курса, открытый в базе в режиме конструктора, показан в первом столбце построителя
отдельно от всех других запросов, что очень удобно при построении выражения.