Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Путевые листы.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
5 Мб
Скачать
☆

СервисАнализАрхивариус. Лабораторная работа № 4 Тема: Запросы

Запрос – это вопрос пользователя к Базе Данных.

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

Основным языком запросов является язык SQL (Structure Query Language).

Язык SQL можно реализовать обычным написанием инструкций, а можно использовать язык QBE (Query by Example), который доступен пользователю любого уровня. Окончанием к использованию QBE является инструкция SQL.

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

Задание.

В Базе Данных Путевые листы построить таблицу следующего образца:

  1. Изучите содержание запроса. Поля № ПЛ, Дата, Госномер, Табном, СпидНач, СпидКон, Пробег город, Межгор, ОстНач, АЗС, ОстКон – взяты из таблицы Путевые листы.

  2. Поле ФИО водителя взяты из таблицы Справочник водителей.

  3. Марка – из таблицы Справочник автомобилей.

Вывод: в формировании данного запроса участвуют три таблицы.

Создать запрос (QBE)

  1. Запросы  Создание запроса в режиме КонструктораОК

  2. Открылось два окна: первое окно – бланк QBE (Рис. 9) состоит из двух частей. В верхней части окна должен находиться список таблиц с полями, а в нижней части – сам бланк запроса. Второе окно Добавление таблицы, где выбираются нужные поля таблицы.

Рисунок 9 Запрос на выборку

Таблица выбирается двумя способами: 1) движением мышки выделить нужную таблицу и нажать кнопку Добавить. 2) Двойным щелчком или используя кнопку Добавить занести в бланк запроса (список полей).

  1. Закрыть окно Добавление таблицы. Если окно Добавление таблицы не появилось, щелкните правой клавишей мыши в верхней части окна и выбрать Добавить таблицу.

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

Границы окон бланка активны и могут менять размер.

Откройте полученный запрос в режиме SQL:

  • команда ВидРежим SQL

  • изучите запись

  • вернитесь в режим Конструктора.

Построение запроса

Первый этап

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

        2. сохраните запрос

        3. просмотрите в режиме Таблицы

        4. вернитесь в режим Конструктора и запустите запрос (кнопка «!» на панели инструментов).

Второй этап

Создаем вычисляемые поля, т.е. выполняем расчеты (обработку записей).

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

а) Пробег: Путевые листы!СпидКон-Путевые листы!СпидНач

б) БензФакт: Путевые листы!ОстНач+Путевые листы!АЗС-Путевые листы!ОстКон

  1. Для формирования вычисляемого поля активизируйте в строке Поле первый пустой столбец.

  2. Выберите на панели инструментов Построить или правой клавишей мыши.

  3. Раскройте список таблиц, активизируя таблицы указанные в алгоритме и постройте фразу из полей таблиц и знаков действий (1). Нажмите ОК и вернитесь в бланк запроса.

  • Щелкните левой клавишей мыши в любой другой ячейке таблицы;

  • появится Выражение 1 – это стандартное имя поля, которое присваивает Access;

  • замените на содержательное имя (дважды щелкните по слову Выражение 1 и запишите - Пробег)

  • сохраните запрос (нажав на панели инструментов кнопку с изображением дискеты) под именем Учет путевых листовОК

  • просмотрите запрос

  • просмотрите запрос в режиме SQL.

Задание.

Самостоятельно постройте поле БензФакт.

*Примечание:

в имени поля нельзя использовать пробелы.

Сохраните.

Задание.

Составить алгоритм для расчета БензНорм.

Если период учета = зима, то

  1. Путевые листы!Город*Справочник автомобилей!НормаГорЗ/100+Путевые листы!Межгор*Справочник автомобилей!НормаМежЗ/100;

Если период учета=лето, то

  1. Путевые листы!Город*Справочник автомобилей!НормаГорЛ/100+Путевые листы!Межгор*Справочник автомобилей!НормаМежЛ/100.

- Появляется дополнительное поле Период учета (строится как поле с параметрами).

- Создайте вычисляемое поле с параметром:

Период: [Введите период учета]

  • Сохраните и просмотрите запрос.

Для расчета поля БензНорм используйте условие iif (условие: значение_если_истина; значение_если_ложь)

iif([период]= «Зима»; Путевые листы!Город*Справочник автомобилей!НормаГорЗ/100+Путевые листы!Межгор*Справочник автомобилей!НормаМежЗ/100; Путевые листы!Город*Справочник автомобилей!НормаГорЛ/100+Путевые листы!Межгор*Справочник автомобилей!НормаМежЛ/100.

  • Сохраните и просмотрите.

С перспективой накопления данных выделите месяц и год учета:

Месяц: month(Путевые листы!Дата)

Год: year(Путевые листы!Дата)

  • Сохраните и просмотрите.

Работа с данными в запросе на выборку

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

Задание.

        1. Скопируйте запрос Учет путевых листов под именем Копия1;

        2. Откройте Копия1 в режиме Конструктора

        3. Отсортируйте по полю Дата и просмотрите результат;

        4. Перейдите в режим Конструктора и сформируйте условия отбора по Дате, используя условия отбора с параметром.

Задание.

Создать Копия2 Основного запроса и отобрать водителей фамилии, которых начинаются на букву «М».

Задание.

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

Организация накопления данных и обновления данных в исходных таблица