III. Использование вычисляемых полей в запросах

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

Рассмотрим технологию создания запроса с вычисляемым полем на примере таблицы ПРЕДМЕТ.

ЗАДАНИЕ

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

Для решения этой задачи рассчитаем разность между общим числом часов по предмету (поле ЧАСЫ) и суммой часов лекций (поле ЛЕК) и практики (поле ПР). В ответ включим только те записи, для которых эта разность равна нулю.

Создадим запрос на выборку для таблицы ПРЕДМЕТ. Перетащим в бланк запроса поля НП, ПР, ЛЕК, ЧАСЫ.

Создание вычисляемого поля.

Для получения разности создадим вычисляемое поле в пустой ячейке строки Поле, записав туда выражение:[ЧАСЫ]-[ПР]-[ЛЕК].

Для отбора записей с ненулевым значением разности в вычисляемом поле в строку Условие отбора введем <>0 (не равно 0). Поле ввода выражения система формирует имя вычисляемого поля по умолчанию - Выражение 1, Это имя ставится перед выражением. Для изменения имени установим курсор мыши в вычисляемом поле бланка запроса и нажмем правую кнопку мыши. В контекстно-зависимом меню выберем Свойства поля и в строку Подпись введем новое имя поля ЧАСЫ<>ПР+ЛЕК. Имя поля может быть исправлено также непосредственно в бланке запроса. Сохраним запрос под именем Разность часов по предмету.

Построенный запрос может быть использован для проверки правильности заполнения поля ЧАСЫ в таблице ПРЕДМЕТ.

V. Использование групповых операций в запросах

Назначение групповых операций

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

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

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

· Мах, Мin - максимальное, минимальное значение поля в группе;

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

· StDev - среднеквадратичное отклонение от среднего значения поля в группе;

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

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

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

Порядок создания запроса с использованием групповых операций

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

Конструирование однотабличного запроса с групповой операцией

Рассмотрим технологию конструирования однотабличного запроса с групповой операцией на примере таблицы СТУДЕНТ.

Запрос с функцией Count

ЗАДАНИЕ

Создать запрос на выборку для таблицы СТУДЕНТ.

Из списка таблицы СТУДЕНТ перетащим в бланк запроса поле НГ - номер группы. Это поле создадим для указания, что по этому полю должна производиться группировка. Перетащим в бланк запроса поле НС, по которому будет вычисляться функцияСоипt для подсчета числа студентов в группе.

Нажмите кнопкуГрупповые операции, замените словоГруппировка втаблице НС на функциюСоипt. Для этого вызовите список и выберите эту функцию. Сохраните запрос под именемЧисло студентов в группах.Просмотрите запрос.

Подпись поляCount_НС замените наФактическое число студентов. Для ввода этой подписи в бланке запроса установите на поле НС курсор мыши и нажмите правую кнопку. В контекстно-зависимом меню выберитеСвойства.

В окнеСвойства поля в строкуПодпись введитеФактическое число студентов. Просмотрите запрос. Сохраните запрос под именемФ_число студентов.

Запрос с функцией Avg

ЗАДАНИЕ

Подсчитать средний проходной балл в группе.

Сформируем запрос на выборку для таблицы СТУДЕНТ с функцией Avg для поля ПБАЛЛ - средний проходной балл студентов. В бланке запроса заполните поля НГ и ПБАЛЛ. Нажмите кнопкуГрупповые операции,замените слово Группировка в таблице ПБАЛЛ на функцию Avg. Для ограничения точности результата двумя знаками выберите в окнеСвойства поля в строке Формат поля - Фиксированный. Сохраните запрос под именемСредний прох. балл.Просмотрите запрос.

Наши рекомендации