- •Л.М. Патлань, л.В. Киселёва, в.Ю. Анисимов основы работы с базами данных в microsoft access Методические указания и контрольные задания для студентов заочной формы обучения
- •Общие рекомендации
- •1. Информационные системы и структуры банков данных
- •2. Компоненты субд access
- •3. Особенности проектирования таблиц
- •4. Ввод и редактирование данных в таблице
- •5. Поиск данных в таблицах
- •6. Особенности проектирования реляционных баз данных
- •6.1.Понятие реляционной базы данных
- •6.2. Первичные ключи и индексирование
- •6.3. Связи в базе данных
- •7. Проектирование запросов
- •7.1. Порядок создания запроса и условия отбора
- •7.2. Запросы с применением вычислений
- •7.3. Назначение и особенности проектирования запросов разных типов
- •7.4. Сравнение возможностей фильтров и запросов
- •8. Работа с формами
- •9. Работа с отчетами
- •10. Понятие о языке запросов sql
- •11. Некоторые сервисные функции в ms access
- •11.1. Оптимизация размера файла базы данных
- •11.2. Обмен данными в ms Access
- •12. Содержание лабораторных работ № 1. Субд Access. Создание реляционной базы данных
- •№ 2. Субд Access. Отбор записей в базе данных
- •№ 3. Субд Access. Создание экранных форм для ввода и редактирования данных
- •№ 4. Субд Access. Работа с отчетами
- •13. Варианты заданий
- •Литература
- •Содержание
7.2. Запросы с применением вычислений
Access позволяет выполнять в запросах вычисления двух типов – встроенные и пользовательские. Они применяются соответственно в итоговых запросах и запросах с вычисляемыми полями. При этом в обоих случаях в результирующей таблице отображаются данные, отсутствующие в исходной.
Итоговые запросы - это запросы, выполняющие вычисления в группах записей, они создаются командой ВИД/ГРУППОВЫЕ ОПЕРАЦИИ.
Наиболее употребительные типы групповых операций:
Sum - определение суммы значений по полю;
Avg - среднее значение по полю;
Min - минимальное значение по полю;
Max - максимальное значение по полю;
Count – количество записей;
First – первое значение;
Last – последнее значение.
В примере рис. 7.2 отображён бланк итогового запроса, вычисляющего сумму затрат каждого клиента.
Рис. 7.2. Бланк запроса, использующего групповые операции
Результат запуска этого запроса – на рис. 7.3.
Рис. 7.3. Результат выполнения запроса, использующего групповую операцию Sum
При разработке запроса с вычисляемыми полями новое вычисляемое поле создается прямо в свободном поле бланка запроса с помощью выражения. Выражение содержит формулы, в которые могут входить поля, константы, встроенные функции, связываемые операторами (+,-,/,*,&,<,>,<>,And,Or,Not,Like, круглые скобки). Для построения выражения удобно использовать окно "Построитель выражений", оно вызывается кнопкой на стандартной панели инструментов. В окне можно выбрать источник данных (таблицы, запросы, функции, константы), поля в этих источниках, конкретные математические и логические операторы, функции, необходимые для построения выражения.
Пример окна "Построитель выражений" для вычисления стоимости покупки партии одного товара, показан на рис. 7.4. Здесь стоимость покупки партии товара вычисляется как произведение цены товара из таблицы "ТОВАРЫ" и количества проданного товара из таблицы "ЗАКАЗЫ И ПРОДАЖИ".
Рис. 7.4. Пример окна "Построитель выражений"
Синтаксис встроенных функций Access похож на синтаксис, используемый Excel. Они разделены на категории и могут содержать разное количество аргументов. На рис. 7.5 в правом поле окна "Построитель выражений" виден список функций категории Дата/время, а в поле выражения выбрана функция Now(), возвращающая текущую дату, она не содержит аргументов.
Рис. 7.5. Окно "Построитель выражений", в котором выбирается встроенная функция Now().
Выражение может содержать и вложенные функции. На рис. 7.6 приводится пример выражения, построенного для начисления наценки в 5% на покупку, совершённую в декабре. Здесь используются встроенные функции IIf (ЕСЛИ) и Month (МЕСЯЦ), вложенная в аргумент - условие функции IIf.
Рис. 7.6.Пример выражения с вложенными функциями
Результат реализации этого выражения отображён на рис. 7.7. Видно, что для клиента, совершившего покупку в декабре (нижняя запись), производится наценка на сумму покупки.
Рис. 7.7. Запрос, реализующий выражение с вложенными функциями
Результаты вычислений не запоминаются в исходной таблице (как и обычно результаты запросов), они выполняются каждый раз при запуске запроса, поэтому и отражают текущее состояние базы данных. Обновить вычисленные результаты вручную невозможно.