
4. Создание запросов
Запросы включают в себя запросы на выборку с расчетом, выводящие информацию по одному из объектов предметной области; запросы на выборку, выводящие информацию по нескольким объектам предметной области – запросы на основе связанных таблиц; запросы на выборку с группировкой; перекрестные запросы; запросы действия.
Все сотрудники:
SELECT Сотрудники.[Код Сотрудника], Сотрудники.Телефон, Сотрудники.Фамилия, Сотрудники.Имя, Сотрудники.Отчество, Сотрудники.Должность
FROM Сотрудники;
Все диспетчера:
SELECT Сотрудники.[Код Сотрудника], Сотрудники.Фамилия, Сотрудники.Имя, Сотрудники.Отчество, Сотрудники.Должность
FROM Сотрудники
WHERE (((Сотрудники.Должность)="диспетчер"));
Все водители:
SELECT [Все сотрудники Запрос].[Код Сотрудника], [Все сотрудники Запрос].Телефон, [Все сотрудники Запрос].Фамилия, [Все сотрудники Запрос].Имя, [Все сотрудники Запрос].Отчество, [Все сотрудники Запрос].Должность
FROM [Все сотрудники Запрос]
WHERE ((([Все сотрудники Запрос].Должность)="водитель"));
Все заказчики:
SELECT Заказчики.[Код заказчика], Заказчики.Фамилия, Заказчики.Имя, Заказчики.Отчество, Заказчики.Банк
FROM Заказчики;
Сотрудники перекрестный:
TRANSFORM Max(Сотрудники.Код) AS [Итоговое значение Код]
SELECT Сотрудники.[Код Сотрудника], Сотрудники.Телефон
FROM Сотрудники
GROUP BY Сотрудники.[Код Сотрудника], Сотрудники.Телефон
PIVOT Сотрудники.Должность;
Заказ расчет:
SELECT Заказ.[Дата отправления], Заказ.[Дата прибытия], [Дата прибытия]-[Дата отправления] AS [Дни в пути], Заказ.[Код заказа], Сотрудники.Фамилия, [Оклад,день]*[Дни в пути] AS Зарплата, Сотрудники.[Оклад,день], Month([Дата прибытия]) AS Месяц, Заказ.[Код сотрудника]
FROM Заказ INNER JOIN Сотрудники ON Заказ.[Код сотрудника] = Сотрудники.[Код Сотрудника];
Сотрудники выполняют заказ:
SELECT Сотрудники.Фамилия, Сотрудники.Имя, Сотрудники.Отчество, Сотрудники.[Код Сотрудника], [Сотрудники выполняют заказ].Статус
FROM Сотрудники INNER JOIN [Сотрудники выполняют заказ] ON Сотрудники.[Код Сотрудника] = [Сотрудники выполняют заказ].[Код сотрудника];
Водители стаж больше трех лет:
SELECT Сотрудники.[Фамилия], Сотрудники.[Имя], Сотрудники.[Отчество], Сотрудники.[Должность], Сотрудники.[Стаж]
FROM Сотрудники
WHERE (((Сотрудники.Должность)="водитель") And ((Сотрудники.Стаж)>3));
Грузы:
TRANSFORM Sum(Грузы.[Код груза]) AS [Sum-Код груза]
SELECT Грузы.Особенности, Sum(Грузы.[Масса,кг]) AS [Sum-Масса,кг]
FROM Грузы
WHERE (((Грузы.[Масса,кг]) Is Not Null))
GROUP BY Грузы.Особенности
PIVOT Грузы.[Масса,кг];
Итоговая зарплата:
TRANSFORM Min([Заказ_расчет Запрос].Зарплата) AS [Min-Зарплата]
SELECT [Заказ_расчет Запрос].Месяц, Sum([Заказ_расчет Запрос].Зарплата) AS [Зарплата Итоговая]
FROM [Заказ_расчет Запрос]
GROUP BY [Заказ_расчет Запрос].Месяц
PIVOT [Заказ_расчет Запрос].[Дата отправления];
Запрос на удаление:
DELETE Заказ.[Код заказа]
FROM Заказ
WHERE (((Заказ.[Код заказа])=[Введите код заказа для удаления]));
5. Разработка интерфейса
Интерфейс разрабатывается в меню «Формы» программы MS Office Access (Рис. 4)
Рис. 4 Форма работы с заказами
Рис. 5 Кнопочная форма
Рис. 6 Диаграмма итоговой зарплаты выданной сотрудникам по месяцам
Рис. 7 Часть отчета данных о всех сотрудниках