Мастера создания запросов

Простейшие запросы некоторых видов могут быть созданы с помощью мастеров Access. С помощью мастера можно создать:

r Простой запрос на выборку

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

r Запрос для поиска повторяющихся записей (записей с повторяющимися значениями в полях)

r Запрос для поиска записей, не имеющих подчиненных

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

Создание запроса с помощью мастера начинается с выбора в окне базы данных объекта Мастер запросов.

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

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

Мастера запросов на выборку

Простой запрос

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

Запрос для поиска повторяющихся записей

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

Запрос для поиска записей, не имеющих подчиненных

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

r Например, можно найти студентов, которые вообще не сдавали экзаме­нов и зачетов. В этом примере в качестве анализируемой выбирается таб­лица СТУДЕНТ, в качестве подчиненной — УСПЕВАЕМОСТЬ. Для свя­зи выбираются поля НГ (номер группы) и НС (номер студента в группе)

r Можно найти группы, для которых еще не внесены данные о сдаче экза­менов и зачетов ни по одному из предметов. В качестве анализируемой таблицы нужно выбрать таблицу ГРУППА, подчиненной — УСПЕВАЕ­МОСТЬ. Для связи надо выбрать поле НГ

Мастер перекрестных запросов

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

Пример

Рассмотрим создание перекрестной таблицы на примере таблицы УСПЕВАЕМОСТЬ. Пусть необходимо для каждого преподавателя определить число студентов, у которых он оценил знания по лекционному или практическому занятию.

При создании этого запроса для заголовков строк надо выбрать поле ТАБН (табельный номер преподавателя), для заголовков столбцов — ВИДЗ (вид занятия). Для ячейки таблицы выбрать номера всех студентов, которые экзаменовались у данного преподавателя по данному виду занятия. Несколько идентификаторов нельзя разместить в одной ячейке, поэтому для вычисления единственного значения в ячейке таблицы выберем функцию Count для поля НС (номер студента). Эта функция даст число студентов, аттестованных преподавателем по лекционным и практическим занятиям. Подсчет итогового значения для строк позволит получить общее число студентов, знания которых оценивал преподаватель.

Очевидно, в результате выполнения запроса удобнее видеть в таблице не табельные номера преподавателей, а их фамилии. Чтобы получить в таблице фамилии, перед тем как создавать перекрестный запрос, нужно создать простой запрос для таблиц УСПЕВАЕМОСТЬ и ПРЕПОДАВАТЕЛЬ.

 В схеме данных должна быть установлена связь этих таблиц по полю ТАБН. В этом запросе надо выбрать из таблицы ПРЕПОДАВАТЕЛЬ поле ФИО, а из таблицы УСПЕВАЕМОСТЬ поля ВИДЗ и НС. Перекрестный запрос надо строить на этом запросе выборки, использовав ФИО в качестве поля для заголовков строк.

Задание

Выберите в таблице УСПЕВАЕМОСТЬ для расчета значений в ячейках вме­сто поля НС другое поле — ОЦЕНКА, и примените функцию Avg для рас­чета средней оценки, которую выставил преподаватель при контроле знаний студентов.

Рассмотрим создание таблицы перекрестного запроса на примере таблицы ИЗУЧЕНИЕ. Пусть необходимо для каждой группы определить суммарное число часов по каждому изучаемому предмету.

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

Рисунок 14

 

Для создания такого перекрестного запроса в окне базы данных выберем Мастер запросов, а далее – перекрестный запрос.

Выберем таблицу ИЗУЧЕНИЕ, на которой необходимо построить запрос. В следующих диалоговых окнах:

r О Выберем поле НГ (Номер группы) — для заголовков строк. Для выбора используем кнопку >

r Выберем поле КП (Код предмета), значения которого предполагается использовать в качестве заголовков столбцов

r Выберем поле ЧАСЫ, на основе которого будут определяться значения на пересечении строк и столбцов

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

r Применим к полю ЧАСЫ функцию "Сумма" (Sum), для того чтобы под­считать сумму лекционных и практических часов для каждой образовав­шейся группы

r Отметим переключатель Вычислить итоговые значения для каждой строки (Yes, include row sums)

r Введем имя запроса – «Изучение предметов по группам»


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: