Лабораторная работа № 7. Основы работы в СУБД Microsoft Access. Создание и использование запросов.
2. «СОЗДАНИЕ И ИСПОЛЬЗОВАНИЕ ЗАПРОСОВ»
2.4. ЗАДАНИЕ 12. Построение запросов с вычисляемыми полями
Построим простейший запрос, в котором выдается список группы и средний балл каждого студента (для II курса II семестра – это группы А-2 и Б-2).
- Откройте окно запроса Ведомость группы за I семестр в режиме конструктора.
- Уберите флажки в ячейке Вывод на экран для полей Nst, Ngr, 1_e1, 1_e2. В ячейку Поле свободного столбца поставьте курсор, вызовите контекстное меню и выберите команду Область ввода: в этом окне удобнее работать с длинными выражениями.
- В Области ввода набрать выражение:
СреднийБалл: ([1_e2]+[1_e1])/2. Закрыть Область ввода. Поставить галочку в ячейке Вывод на экран вычисляемого поля: (рис. 32). - Запустите запрос (пункт 7 ЗАДАНИЯ 9), как работает данный запрос?
- При проектировании таблиц мы оговаривали, что в таблице Группы количество студентов в группе и номер курса могут быть вычислены по уже имеющимся полям. Составьте самостоятельно запрос Список групп, в котором номер курса определяется в вычисляемом поле как разность между последней цифрой текущего года и последней цифрой номера группы. Например, для II полугодия 2004 года группа Б-1 будет отнесена к III курсу: (200)4-(Б-)1=3. Причем, если берется I полугодие, то формула расчета должна включать добавление единицы. Этот факт реализуется вводом параметра в выражение:
Kурс: Val(Right$(Date$();1))-Val(Right$([Nгр];1))+[Для I полугодия ввести 1, иначе 0]
Рис. 32. Запрос с вычисляемым полем
6. Постройте указанный запрос на основе таблицы Группы. Вычисляемое поле поставьте после поля Nгр, используя команду горизонтального меню Вставка>Столбец. Проверьте, как работает запрос для разных значений параметра.
7. Используя выражение для вычисления номера курса пункта 5, создайте запрос Список студентов по курсам на основе таблицы Учетная карта, включив в него все поля, кроме Phgr. При этом модифицируйте выражение для вычисления курса так, чтобы полугодие вычислялось автоматически (для этого используйте функции MID$, DATE$(), чтобы определить текущий месяц года.)
Групповые операции и вычисления. Итоговые запросы
При работе с базой данных не обойтись без запросов, позволяющих получить некоторую итоговую информацию, например, количество студентов в группе, количество студентов, имеющих задолженности за сессию, средний балл группы, сумму стипендии, выдаваемой за каждый месяц, процент преподавателей, имеющих ученую степень и т.д. Такие вычисления возможны благодаря поддерживаемым в программе Access средствам группировки записей и встроенным статистическим функциям. Записи, результирующего набора организуются в группы по указанному полю (или полям), а затем к созданным группам могут быть применены различные итоговые вычисления.
Включить в запрос выполнение некоторых вычислений можно с помощью строки бланка запроса Групповая операция, которая изначально не видна в окне конструктора. Чтобы отобразить эту строку в режиме конструктора, следует выполнить команду Вид>Групповые операции.
Теперь в бланке запроса можно выбрать для любого поля нужный вариант вычислений. Групповые операции могут выполняться как для всех записей результирующего набора, так и для отдельных групп. Чтобы выполнить вычисления, для нужных полей в бланке запроса выбирается соответствующая опция из раскрывающегося списка строки Групповая операция.
Список опций поля Групповая операция включает 9 итоговых функций и три элемента: Группировка, Выражение, Условие.
- Группировка. Этот элемент указывает на поле, по которому результаты выполнения запроса будут организованы в группы для дальнейших итоговых вычислений.
- Sum. Суммируются все значения, содержащиеся в поле запроса.
- Avg. Вычисляется среднее арифметическое значение для всех чисел, содержащихся в выбранном поле.
- Min/Max. Отображается минимальное/максимальное изо всех значений, содержащихся в поле запроса.
- Count. Вычисляется количество непустых значений в поле запроса.
- StDev. Вычисляется среднеквадратичное отклонение для значений в поле.
- Var. Вычисляется дисперсия распределения значений, содержащихся в указанном поле.
- First/Last. Отображается значение из первой/последней записи результирующего набора.
- Выражение. Этот элемент сообщает программе Access, что следует создать поле, значение которого будет вычисляться.
- Условие. Элемент, указывающий Access, что данное поле не участвует в группировке; условие отбора, вводимое в это поле, определяет какие записи будут участвовать в вычислениях.