Построение запроса на основе других запросов 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Построение запроса на основе других запросов

Поиск

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

УПРАЖНЕНИЕ 14

1. Создайте запрос на выборку, в котором по таблице ПРЕПОДАВАТЕЛЬ с помощью функции Count подсчитывается число преподавателей на каждой кафедре. Сохраните запрос под именем ЧИСЛО ПРЕПОДАВАТЕЛЕЙ КАФЕДРЫ.

2. Для подсчета общего числа часов занятий, проводимых каждой кафедрой, создайте запрос на базе таблиц ПРЕПОДАВАТЕЛЬ и ИЗУЧЕНИЕ.

3. Сохраните запрос под именем ЧАСЫ КАФЕДРЫ и выполните.

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

5. Создайте запрос в Режиме конструктора. В окне Добавление таблицы откройте вкладку Таблицы и запросы и выберите таблицу КАФЕДРА и два предыдущих запроса

6. В строку Поле из таблицы КАФЕДРА перенесите поля ККАФ и НКАФ, а из запросов - соответственно Count _ ТАБН и Sum _ ЧАСЫ. Таблица КАФЕДРА включена в запрос для дополнения кода кафедры ее наименованием.

7. Для создания вычисляемого поля, рассчитывающего среднюю нагрузку преподавателя, введите выражение [ Sum _ ЧАСЫ ]/[ Count _ ТАБН ]. Для этого в строке Поле пустого столбца с помощью контекстно-зависимого меню вызовите Построитель выражения, выбрав меню Построить. В левой части окна Построителя выражения в папке Запросы выберите соответствующие запросы. Справа отобразится список полей. Последовательно выбирая нужные поля, нажимая кнопку Вставить и вставляя знаки операции, сформируйте необходимое выражение в верхней части окна, Ok.

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

9. Задайте в Подпись поля значение Средняя нагрузка преподавателя, в Формат поля - Фиксированный и в Число десятичных знаков – 0

10. Сохраните запрос под именем НАГРУЗКА ПО КАФЕДРАМ

 

Запрос на создание таблицы

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

УПРАЖНЕНИЕ 15

Сконструируйте запрос на создание таблицы на запросе ЧИСЛО СТУДЕНТОВ и СРЕДНИЙ БАЛЛ ГРУППЫ.

1. В окне базы данных выделите названный запрос и откройте его в режиме Конструктора

2. Выберите в меню Запрос|Создание таблицы

3. В окне Создание таблиц введите имя ЧИСЛО СТУДЕНТОВ и отметьте В текущей базе данных

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

Запрос на обновление

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

Рассмотрите технологию формирования на примере обновления поля КОЛ (количество студентов группы в таблице ГРУППА).

УПРАЖНЕНИЕ 16

1. Для формирования запроса на обновление сначала создайте Запрос на выборку на основе двух таблиц: обновляемой таблицы ГРУППА и таблицы ЧИСЛОСТУДЕНТОВ, содержащей данные для обновления. В подсхеме данных запроса автоматически установится связь этих таблиц по полю НГ

2. Преобразуйте запрос на выборку в Запрос на обновление, выбрав из меню Запрос|Обновление

3. Заполните бланк запроса. Перетащите обновляемое поле КОЛ в строку Поле. В строку Обновление введите имя поля Count _ НС, заключенное в квадратные скобки

4. Просмотрите содержимое поля КОЛ перед обновлением в режиме Таблица

5. Сохраните запрос под именем ОБНОВЛЕНИЕ ТАБЛИЦЫ ГРУППА.

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

7. Обратите внимание на измененные значения содержимого поля КОЛ в таблице ГРУППА

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

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

УПРАЖНЕНИЕ 17

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

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

2. Для создания следующего запроса нажмите кнопку Создать| Перекрестный запрос

3. В окне мастера выберите запрос ПРЕПОДАВАТЕЛЬ - ЗАПРОС

4. В следующем окне мастера выберите для заголовков строк поле ФИО. Для выбора используйте кнопку >.

5. Для заголовков столбцов установлено поле ВИДЗ

6. Для вычисления значений ячеек выберите поле НС и функцию Число (Count)

 

УПРАЖНЕНИЕ 18

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

1. Начните, как обычно, создание запроса в режиме Конструктора

2. В окне Добавление таблицы включите в схему данных таблицы ПРЕДМЕТ, ИЗУЧЕНИЕ и ПРЕПОДАВАТЕЛЬ

3. В бланк запроса перетащите поля ФИО из таблицы ПРЕПОДАВАТЕЛЬ, НП – из таблицы ПРЕДМЕТ, ЧАСЫ – из таблицы ИЗУЧЕНИЕ

4. Выполните команду меню Запрос/Перекрестный. В бланке запроса появятся две дополнительные строки Групповая операция и Перекрестная таблица

5. В строке Перекрестная таблица для поля ФИО выберите из списка значение Заголовки строк, для НПЗаголовки столбцов, для поля ЧАСЫ - Значение

6. В строке Групповая операция для поля ЧАСЫ выберите Sum, оставив для всех остальных полей – Группировка

Отчеты

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

УПРАЖНЕНИЕ 19

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

1. Определите требования к макету отчета:

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

§ Необходимо рассчитать средний проходной балл для каждой группы

§ Записи должны выводиться в алфавитном порядке фамилий

Начните создание отчета с помощью Мастера, а затем откорректируйте в режиме Конструктора.

2. На вкладке Отчет нажмите на кнопку Создать

3. В окне Новый отчет откройте список таблиц и выберите СТУДЕНТ, затем - Мастер отчетов

4. Выберите поля НГ, НС, ФИО, ГОДР, ПБАЛЛ

5. Данные в отчете должны быть сгруппированы по полю НГ

6. В следующем окне мастера определите способ сортировки (в нашем случае по ФИО). Нажмите кнопку Итоги и выберите для поля ПБАЛЛ функцию Avg

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

8. По умолчанию отчет примет имя СТУДЕНТ

УПРАЖНЕНИЕ 20

Для редактирования отчета перейдите в Режим конструктора.

1. В разделе Заголовок отчета из пункта контекстного меню Свойства в строке Подпись поменяйте заголовок на Списки студентов, здесь же выберите размер шрифта, начертание

2. Из раздела Верхний колонтитул удалите поле НГ, чтобы оно не повторялось. Для этого выделите его и Del. Выбрав из панели элементов Надпись, введите подпись поля: Список студентов группы. Установите нужный шрифт в элементах.

3. Аналогично замените Подпись поля в разделе Примечание группы НГ на Средний проходной балл. В свойствах элемента функции =Avg( ПБАЛЛ ) на вкладке Макет в строке Формат поля выберите Фиксированный, а число десятичных знаков – 2.

 


ПРИЛОЖЕНИЕ

Описание свойств полей таблицы СТУДЕНТ

 

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

Описание свойств полей таблицы КАФЕДРА

 

Имя поля   Тип данных Ключевое поле Размер Число десятич. знаков Подпись индексированное поле Обязательное поле
ККАФ Текстовый Да     Код Да, совпадения не допускаются Да
НКАФ Текстовый       Название нет Нет
ТЕЛ Текстовый         нет Нет
ЗАВ Текстовый       ФИО зав. кафедрой нет Нет
ФОТО Поле объекта OLE       Фотография заведующего   Нет  

Описание свойств полей таблицы ПРЕПОДАВАТЕЛЬ

 

Имя поля   Тип данных Ключевое поле Размер Число десятичных знаков Подпись индексированное поле Обязательное поле
ТАБН Текстовый Да     Таб. Номер Да, совпадения не допускаются Да
ФИО Текстовый       ФИО преподавателя нет Да
СТ Текстовый       Ученая степень нет Нет
ЗВ Текстовый       Ученое звание нет Нет
ККАФ Текстовый       Код кафедры нет Да  

Описание свойств полей таблицы ПРЕДМЕТ

 

Имя поля   Тип данных Ключевое поле Размер Подпись Условие на значение Сообщение об ошибке индексированное поле Обязательное поле
КП Текстовый Да   Код предмета     Да, совпадения не допускаются Да
НП Текстовый     Название предмета     нет Нет
ЧАСЫ Числовой   Целое Всего часов >0 AND <=300 Кол-во часов должно быть>0 и<300 нет Нет
ЛЕК Числовой   Целое Лекции     нет Нет
ПР Числовой   Целое Практика     нет Нет
ЧС Числовой   Целое Семестров     нет Нет
ПРОГ Поле МЕМО     Программа       Нет  

Описание свойств полей таблицы ИЗУЧЕНИЕ

 

Имя поля   Тип данных Ключевое поле Размер Число десятичных знаков Подпись Индексирован-ное поле Обязательное поле
НГ Текстовый Да     Номер группы Да совпадения допускаются Да
КП Текстовый Да     Код предмета Да совпадения допускаются Да
ТАБН Текстовый Да     Таб.номер преподавателя Да совпадения допускаются Да
ВИДЗ Текстовый Да     Вид занятий Да совпадения допускаются Да
ЧАСЫ Числовой   Целое       нет
СБАЛЛ ГР Числовой   С плав.точкой (8 байт)   Средний балл по предмету   нет


Поделиться:


Последнее изменение этой страницы: 2016-12-16; просмотров: 451; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.48.226 (0.009 с.)