Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема 14 Построение запросов к базе данных.doc
Скачиваний:
3
Добавлен:
03.05.2019
Размер:
156.67 Кб
Скачать

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

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

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

  • Встроенные вычисления, называемые «итоговыми», для расчета следующих значений по группам записей или по всем записям, отобранным в запросе: сумма, среднее, число значений, минимальное или максимальное значение, стандартное отклонение или дисперсия.

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

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

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

Для создания запроса, производящего вычисления, служит тот же самый бланк запроса по образцу. Разница только в том, что в одном из столбцов вместо имени поля записывают формулу. В формулу входят заключенные в квадратные скобки названия полей, участвующих в расчете, а также знаки математических операций, например так: Сумма: [Кол]*[Заводская цена]

2. В узкий столбец непросто записать длинную формулу, но если нажать комбинацию клавиш Shift+F2, то открывается вспомогательное диалоговое окно, которое называется Область ввода. В нем можно ввести длинную формулу, а потом щелчком на кнопке ОК перенести ее в бланк запроса по образцу.

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

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

Итоговые запросы

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

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

Поскольку итоговые функции для одной записи не имеют смысла и существуют только для группы записей, то предварительно записи надо сгруппировать по какому-либо признаку.

1. Рассмотрим работу салона, занимающегося продажей подержанных автомобилей. Результаты работы салона за последнюю неделю содержатся в таблице. В ней можно выделить несколько групп по разному признаку. Записи можно сгруппировать по моделям автомобилей (ВАЗ — отдельно и БМВ — отдельно) или по году выпуска (1989, 1993 и т. д.). Для каждой из групп можно провести итоговое вычисление по полю Цена.

2. Итоговые запросы создают на основе известного нам бланка запроса по образцу, только теперь в нем появляется дополнительная строка — Группировка.

3. Для введения этой строки в бланк надо щелкнуть на кнопке Групповые операции на панели инструментов программы Ассеss.

Далее все происходит очень просто.

4. В тех полях, по которым производится группировка, надо установить (или оставить) функцию Группировка.

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

6. Щелчок на кнопке Вид запускает запрос и выдает результирующую таблицу с необходимыми итоговыми данными.

7. В строке Группировка можно указать лишь одну итоговую функцию. А как быть, если надо найти и сумму, и среднее, и максимальное значение, и еще что-то? Решение простое: одно и то же поле можно включить в бланк запроса по образцу несколько раз.

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

Для определения вычисляемого поля можно использовать встроенные функции Microsoft Access или выражения, создаваемые пользователем. Встроенные вычисления, называемые статистическими функциями (Функции, используемые для расчетов итоговых значений.) или «итоговыми» используются для расчета значений по группам записей или по всем записям, отобранным в запросе: сумма, среднее, число значений, минимальное или максимальное значение, стандартное отклонение или дисперсия. Для каждого вычисляемого поля следует выбрать одно выражение.

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

Вычисления по группе записей

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

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

  • Группировка выполняется до расчетов по группам.

  • Результаты рассчитываются после выполнения расчетов по группам.

  • Ограничивается отбор записей до их группировки и выполнения расчетов.

Статистические функции

Следующие параметры в строке Групповая операция бланка запроса являются статистическими функциями:

Элемент

Результат

Тип поля

Sum

Сумма значений поля.

«Числовой», «Дата/время», «Денежный» и «Счетчик»

Avg

Среднее от значений поля.

«Числовой», «Дата/время», «Денежный» и «Счетчик»

Min

Наименьшее значение поля.

«Текстовый», «Числовой», «Дата/время», «Денежный» и «Счетчик»

Max

Наибольшее значение поля.

«Текстовый», «Числовой», «Дата/время», «Денежный» и «Счетчик»

Count

Число значений поля без учета пустых значений.

«Текстовый», «Числовой», «Дата/время», «Денежный», «Счетчик», «Логический» и «Поле объекта OLE»

StDev

Среднеквадратичное отклонение от среднего значения поля.

«Числовой», «Дата/время», «Денежный» и «Счетчик»

Var

Дисперсия значений поля.

«Числовой», «Дата/время», «Денежный» и «Счетчик»

Функции «First» и «Last»

Функции First и Last используются для возвращения первой или последней записи. Записи возвращаются в том порядке, в котором они были введены. Сортировка записей не влияет на выполнение этих функций.

Элементы «Группировка», «Выражение» и «Условие»

В следующей таблице перечислены операции, выполняемые этими элементами. 

Элемент

Выполняемая операция

Группировка

Определяет группы, для которых выполняются вычисления. Например, чтобы показать суммарные продажи по типам товаров, выберите элемент Группировка для поля «Тип».

Выражение

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

Условие

Определяет условия отбора для поля, которое не участвует в группировке. Если для поля выбирается этот параметр, автоматически снимается флажок Вывод на экран, и поле не выводится на экран при выполнении запроса.