Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Башмакова Е.И. Пример по СУБД.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.15 Mб
Скачать

Упражнение 3. Вычисляемые поля в запросах на выборку

Запрос можно использовать для выполнения расчетов и подведения итогов из исходных таблиц.

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

● квадратные скобки [ ], в них заключается имена элементов управления;

● знаки номеров (#), в них заключается распознанные даты;

● кавычки (« »), в них заключается текст, не содержащий пробелов или знаков пунктуации.

Поле, содержимое которого является результатом расчета по содержимому других полей, называется вычисляемым полем.

Вычисляемое поле существует только в результирующей таблице. Общий формат вычисляемого поля выглядит так:

Имя вычисляемого поля: Выражение для создания вычисляемого поля

Примеры: например, если в таблицах имеются поля «Цена» и «Количество», то в запросе можно создать поле [ Цена ] * [ Количество ].

Прибыль: [ Доход ] – [ Расход ];

Цена со скидкой: [ Цена ] [ Цена ]*0,1

К списку полей запроса можно добавить любое поле, которого нет в таблицах-источниках запроса. В общем случае это поле должно представлять собой любое выражение, построенное с использованием встроенных элементов Access: знаков операций, функций, полей из любых таблиц или запросов БД, элементов управления любых объектов БД (например, форм). Это поле будет содержать формулу. Для более быстрого и правильного построения выражения можно воспользоваться услугами Построителя выражений (контекстное меню/пункт Построить или специальная пиктограмма с тремя точками внутри). При этом открывается окно Построитель выражения.

Создадим запрос для вычисления подоходного налога 13% для каждой сделки.

1. Откройте запрос Сумма заказа в режиме Конструктора.

2. В пустом столбце бланка запроса щелкните правой кнопкой мыши на ячейке Поле и в появившемся контекстном меню выберете команду Построить. Перед вами появится окно Построитель выражений (рис.8). Сверху располагается поле выражения, в котором оно и создается. Вводимые в это поле элементы выбираются в двух других областях окна Построителя.

3. В левом списке откройте папку Запросы и выделите запрос Сумма заказа. В среднем списке выделите поле Сумма и нажмите кнопку Вставить. Идентификатор этого поля появится в поле выражения Построителя.

4. Щелкните на кнопке * и введите 0,13 (см. рис.17). Таким образом, мы посчитаем подоходный налог 13%.

Рис. 17. Построитель выражений

5. Нажмите кнопку ОК, после чего в ячейке свойства Поле появится значение «Выражение 1: [Сумма]*0,13».

6. Замените Выражение 1 на Налог и закройте Конструктор.

7. Откройте запрос и посмотрите, что у вас получилось.

8. Используя Построитель выражений, добавьте в запрос Сумма заказа поле Прибыль, в котором будет вычисляться доход от заказа (т.е. сумма минус налог).

Упражнение 4. Запрос с группировкой

Групповые операции позволяют выделить группы записей с одинаковыми значениями в указанных полях группировки и использовать для других полей этих групп какую-либо статистическую функцию обработки из числа предусмотренных в Access.

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

Итоговый запрос – это запрос с использованием операции Группировка.

Например, можно подсчитать сумму заказов на дату, найти минимальные и максимальные даты заказов.

Для этих целей в Access предусмотрены статистические функции SQL. Статистическую функцию задают в строке Групповая операция бланка запросов, которая появляется при выполнении команды Итоги ( группа Показать и скрыть). Заполняя ячейки в строке Групповая операция, можно выполнить расчеты для групп записей и вычислить сумму, среднее, количество или другой тип итогового значения для вычисляемого поля.

В Access предусмотрено девять статистических функций:

● Sum – сумма значений некоторого поля для группы;

● Avg – среднее от всех значений поля в группе;

● Max, Min – максимальное, минимальное значение поля в группе;

● Count – число значений поля в группе без учета пустых значений;

● Stdev – среднеквадратичное отклонение от среднего значения поля в группе;

● Var – дисперсия значений поля в группе;

● First и Last – значение поля из первой или последней записи в группе.

Рис. 18. Список итоговых функций

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

Найти сумму заказов по каждому клиенту.

1. В окне базы данных щелкните на кнопке Запросы.

2.Дважды щелкните на значке Создание запроса в режиме Конструктора.

3. В открывшемся окне диалога сделайте двойной щелчок на строках Клиенты и Заказы.

4. Щелчком на кнопке Закрыть закройте окно диалога Добавление таблицы.

5. Щелкните на кнопке Групповые операции панели инструментов. В бланке запроса появится дополнительная строка Групповая операция, позволяющая выполнять статистические операции со значениями конкретных полей. При этом в столбцах по умолчанию устанавливается значение Группировка.

6. Перетащите поле Название компании из таблицы Клиенты в строку Поле первого столбца Конструктора.

7. В ту же строку второго столбца перетащите поле Сумма заказа из таблицы Заказы.

8. В раскрывающемся списке ячейки Групповая операция в поле Сумма заказа бланка запроса выберите пункт SUM.

9. Выполните запрос.

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

10. Сохраните запрос.

11. Самостоятельно сделайте запрос с группировкой по зарплате сотрудников.