Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Федеральное агентство по образованию.doc
Скачиваний:
0
Добавлен:
13.01.2023
Размер:
2.59 Mб
Скачать
    1. 3.5. Создание запросов

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

3.5.1. Запросы на выборку

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

Я создала несколько запросов, первый из них – это Зарплата. Основные поля: Фамилии, Имя, Отчество, пол, подразделение, должность, оклад и стаж работы. Я использовала таблицы Сотрудники и Штатное расписание. Я выбрала необходимые мне поля. После этого я вышла из режима конструктора для просмотра полученного запроса.

Одним из преимуществ запросов является то, что они позволяют достаточно быстро отобрать необходимые данные из нескольких связанных таблиц. Но запросы полезны и при работе с одной таблицей. Все приемы, используемые при работе с единственной таблицей, годятся и для сложных многотабличных запросов, поэтому я начну с запросов на выборку данных одной таблицы. Все запросы выполняются при помощи определенного набора операций. Запрос «Зарплата» выглядит следующим образом: SELECT Сотрудник.Фамилия, Сотрудник.Имя, Сотрудник.Отчество, Сотрудник.Пол, Сотрудник.Должн AS Сотрудник_Должн, Сотрудник.[стаж работы], [Штатное расписание].Должн AS [Штатное расписание_Должн], [Штатное расписание].ОкладFROM [Штатное расписание] INNER JOIN Сотрудник ON [Штатное расписание].Должн = Сотрудник.Должн;

Следующий запрос – Дети - позволяет вывести в алфавитном порядке Ф.И.О. сотрудников и имена их детей. Этот запрос будет выглядеть следующим образом:SELECT Сотрудник.Фамилия, Сотрудник.Имя, Сотрудник.Отчество, Состав_семьи.Фамилия, Состав_семьи.Имя, Состав_семьи.Отчество FROM Сотрудник, Состав_семьи WHERE Сотрудник.Идент_код=Состав_семьи.идент_код and (Состав_семьи.Отношение='дочь' or Состав_семьи.Отношение='сын').

Следующий запрос – Стаж. Для создания запроса я использовал описанные приемы. Запрос выглядит следующим образом: SELECT Сотрудник.Фамилия, Сотрудник.Имя, Сотрудник.Отчество, Сотрудник.стаж_работы, Сотрудник.Пол FROM Сотрудник WHERE Сотрудник.Пол="муж" and Сотрудник.Стаж_работы>=5;

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

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

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

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

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

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

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

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

Count  – возвращает число записей, в которых значения данного поля отличны от Null.

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

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

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

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

Описанные выше способы позволили мне сделать запрос «Зарплата на отдел», который выводит Название подразделения, вычисляемое поле Фонд заработанной платы отдела за месяц (ФЗПМ) и вычисляемое поле Фонд заработанной платы за год (ФЗПГ)Итоговый запрос «Зарплата на отдел». Он выглядит следующим образом SELECT DISTINCTROW Штатное_расписание.[Назв подр], [Кол ед]*[Оклад] AS ФЗПМ, [Кол ед]*[Оклад]*12 AS ФЗПГ

FROM Штатное_расписание.

Далее я создаю запрос «Квалификация» позволяющий вывести в вычисляемом поле ФИО фамилию, имя и отчество сотрудников (в алфавитном порядке), название подразделения, должность и стаж работы. Он представлен: SELECT DISTINCTROW Сотрудник.Фамилия, Сотрудник.Имя, Сотрудник.Отчество, Штатное_расписание.[Назв подр], Штатное_расписание.Должн, Max(Сотрудник.стаж_работы) AS [Max - стаж_работы]FROM Штатное_расписание INNER JOIN Сотрудник ON Штатное_расписание.Должн = Сотрудник.Должн GROUP BY Сотрудник.Фамилия, Сотрудник.Имя, Сотрудник.Отчество, Штатное_расписание.[Назв подр], Штатное_расписание.Должн;

Запрос «Средний стаж» », который позволяет вычислить средний стаж сотрудников: SELECT DISTINCTROW Avg([Сотрудник].[стаж_работы]) AS [Avg - стаж_работы] FROM Сотрудник.

Запрос «Количество сотрудников», вычисляющий число сотрудников: SELECT DISTINCTROW Sum([Штатное_расписание].[Кол ед]) AS [Sum - Кол ед] FROM Штатное_расписание.

Запрос «Средний оклад», который вычисляет средний оклад сотрудников: SELECT DISTINCTROW Avg([Штатное_расписание].[Оклад]) AS [Avg - Оклад]

FROM Штатное_расписание.

Благодаря выполненным лабораторным работам в программном приложении Microsoft Access я изучила пользовательский интерфейс СУБД, объекты базы данных, свойства полей и их типы. Также мной были изучены способы создания и изменения таблиц, связей между таблицами, изучены возможности форматирования таблиц.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]