Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Часть I.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
18 Мб
Скачать
☆

Вычисления в запросах

Существует ряд вычислений, которые можно выполнить в запросе, например, найти сумму или среднее по значениям одного поля, перемножить значения двух полей или вычислить дату, отстоящую на три месяца от текущей даты. Как результат, в таблице появляется новое вычисляемое поле – поле, определенное в запросе для вывода результата расчета выражения, а не для сохранения данных.

Значение вычисляемого поля пересчитывается при каждом изменении данных в выражении. Результаты вычислений, выводящиеся в поле, не запоминаются в базовой таблице. Вместо этого, вычисления снова производятся всякий раз, когда выполняется запрос, поэтому результаты всегда представляют текущее содержимое базы данных. Обновить вычисленные результаты вручную невозможно.

Построение вычисляемых полей

Для расчетов с использованием формул, определяемых пользователем, требуется создать новое вычисляемое поле прямо в бланке запроса. Вычисляемое поле создается с помощью выражения, которое вводится в пустую ячейку поля в бланке запроса.

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

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

  1. Откройте окно запроса Ведомость группы за I семестр в режиме конструктора.

  2. Уберите флажки в ячейке Вывод на экран для полей Nst, Ngr, 1_e1, 1_e2. В ячейку Поле свободного столбца поставьте курсор, вызовите контекстное меню и выберите команду Область ввода: в этом окне удобнее работать с длинными выражениями.

  3. В Области ввода набрать выражение: СреднийБалл: ([1_e2]+[1_e1])/2. Закрыть Область ввода. Поставить галочку в ячейке Вывод на экран вычисляемого поля: (рис. 32).

  4. Запустите запрос (пункт 7 ЗАДАНИЯ 9), как работает данный запрос?

  1. При проектировании таблиц мы оговаривали, что в таблице Группы количество студентов в группе и номер курса могут быть вычислены по уже имеющимся полям. Составьте самостоятельно запрос Список групп, в котором номер курса определяется в вычисляемом поле как разность между последней цифрой текущего года и последней цифрой номера группы. Например, для II полугодия 2004 года группа Б-1 будет отнесена к III курсу: (200)4-(Б-)1=3. Причем, если берется I полугодие, то формула расчета должна включать добавление единицы. Этот факт реализуется вводом параметра в выражение:

Kурс: Val(Right$(Date$();1))-Val(Right$([Nгр];1))+[Для I полугодия ввести 1, иначе 0]

Рис. 32. Запрос с вычисляемым полем

  1. Постройте указанный запрос на основе таблицы Группы. Вычисляемое поле поставьте после поля Nгр, используя команду горизонтального меню Вставка>Столбец. Проверьте, как работает запрос для разных значений параметра.

  2. Используя выражение для вычисления номера курса пункта 5, создайте запрос Список студентов по курсам на основе таблицы Учетная карта, включив в него все поля, кроме Phgr. При этом модифицируйте выражение для вычисления курса так, чтобы полугодие вычислялось автоматически (для этого используйте функции MID$, DATE$(), чтобы определить текущий месяц года.)