Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы_данных.pdf
Скачиваний:
39
Добавлен:
07.06.2015
Размер:
964.91 Кб
Скачать

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

Avg – вычисляет среднее арифметическое всех значений данного поля в каждой группе. Min – возвращает наименьшее значение, найденное в этом поле внутри каждой группы. Max – возвращает наибольшее значение, найденное в этом поле внутри каждой группы. Count – возвращает число записей, в которых значения данного поля отличны от Null.

StDev – стандартное отклонение всех значений данного поля в каждой группе. Var –вычисляет дисперсию значений данного поля в каждой группе.

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

На рис. 6.8 показан пример запроса с применением групповой операции Sum. Данный запрос является многотабличным и позволяет определить сумму выплат, сделанных каждым абитуриентом.

Рис. 6.8. Запрос с применением групповой операции Sum

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

Для вычисления итоговых значений надо нажать кнопку Групповые операции(), чтобы в бланке QBE появилась строка Групповые операции. Access использует установку Группировка в строке Групповая операция для любого поля, занесенного в бланк запроса. Теперь записи по каждому полю группируются, но итог не подводится. Если выполнить запрос сейчас, вы получите набор записей, включающий по одной строке для каждого уникального значения поля запроса – но без итогов. Для получения итогов замените установку Группировка в строке Групповая операция на конкретные итоговые функции.

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

Итоговые функции Access:

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

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

Min – возвращает наименьшее значение, найденное в этом поле внутри каждой группы. Max – возвращает наибольшее значение, найденное в этом поле внутри каждой группы. Count – возвращает число записей, в которых значения данного поля отличны от Null.

StDev – стандартное отклонение всех значений данного поля в каждой группе. Var –вычисляет дисперсию значений данного поля в каждой группе.

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

На рис. 6.8 показан пример запроса с применением групповой операции Sum. Данный запрос является многотабличным и позволяет определить сумму выплат, сделанных каждым абитуриентом.

Рис. 6.8. Запрос с применением групповой операции Sum

Перекрестные запросы

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

Для построения перекрестного запроса выделите имя нужной таблицы в окне базе данных

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

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

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

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

Построить перекрестный запрос можно другим, более простым способом, с помощью мастера. Для этого в окне диалога Новый запрос надо выделить пункт Перекрестный запрос и нажать Ok. Затем мастер выведет на экран последовательно ряд окон, в которых запросит необходимые данные для построения перекрестного запроса. Пример результата выполнения перекрестного запроса показан на рис. 9,б.

а

б

Рис. 9. Перекрестный запрос в режиме конструктора (а), результат выполнения перекрестного запроса (б)

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

В режиме конструктора в меню Запрос присутствуют команды для четырех типов

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

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

Запрос на Обновление используется для замены в отобранных записях существующих данных.

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

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

Типовые ошибки и проблемы, возникающие при выполнении запросов на изменение

Во время выполнения запроса на изменение Access различает четыре категории ошибок:

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

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