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

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

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

2.4. ЗАДАНИЕ 12. Построение запросов с вычисляемыми полями

Построим простейший запрос, в котором выдается список группы и средний балл каждого студента (для II курса II семестра – это группы А-2 и Б-2).

  1. Откройте окно запроса Ведомость группы за I семестр  в режиме конструктора.
  2. Уберите флажки в ячейке Вывод на экран для полей Nst, Ngr, 1_e1, 1_e2. В ячейку Поле свободного столбца поставьте курсор, вызовите контекстное меню и выберите команду Область ввода: в этом окне удобнее работать с длинными выражениями.
  3. В Области ввода набрать выражение:
    СреднийБалл: ([1_e2]+[1_e1])/2. Закрыть Область ввода. Поставить галочку в ячейке Вывод на экран вычисляемого поля: (рис. 32).
  4. Запустите запрос (пункт 7 ЗАДАНИЯ 9), как работает данный запрос?
  5. При проектировании таблиц мы оговаривали, что в таблице Группы количество студентов в группе и номер курса могут быть вычислены по уже имеющимся полям. Составьте самостоятельно запрос Список групп, в котором номер курса определяется в вычисляемом поле как разность между последней цифрой текущего года и последней цифрой номера группы. Например, для 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, что данное поле не участвует в группировке; условие отбора, вводимое в это поле, определяет какие записи будут участвовать в вычислениях.