Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУлабраб ИТиС в лог и эконом кор.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3.44 Mб
Скачать

3 Лабораторная работа № 3. Формирование запросов на выборку

Задание 1

Для задания 1 из лабораторной работы № 2 разработать следующие запросы.

1 Показать сведения о ремонтах автомобилей определенной марки (марку выбрать самостоятельно). Выполнить сортировку по дате ремонта.

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

3 Обновить в таблице Заказы поле ОбщаяСтоимость, которое вычисляется следующим образом:

СтоимостьРемонта * (100 + СтавкаНДС) / 100.

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

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

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

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

Рекомендации по выполнению

Разработать запрос на выборку всех сведений о ремонтах автомобилей определенной марки («Ауди»). Выполнить сортировку по дате ремонта. Создать запрос в режиме конструктора. В поле конструктора добавить таблицы «Ремонты», «Авто». Для запроса выбрать поля: КодАвто, Марка, КодРемонта, КодСотрудника, ДатаРемонта, СтоимостьРемонта. В столбце Марка в строке условие отбора записать следующую команду «Ауди». Подобное условие позволяет выбрать из таблицы «Ремонты» те записи, которые производились с авто данной марки. Сортировка выполнить по ДатаРемонта. Вид данного запроса в режиме конструктора и SQL представлен на рисунке 8.

Рисунок 8 – Запрос 1

Разработать запрос 2, позволяющий показать фамилии, имена, отчества и должности сотрудников, которые выполняли ремонтные работы в определенный период времени (с 01.01.2014 по 20.01.2014). Создать запрос в режиме конструктора. В поле конструктора добавить таблицы «Ремонты», «Сотрудники». Для запроса выбрать поля: КодСотрудника, Фамилия, Имя, Отчество, Должность, ДатаРемонта. В столбце ДатаРемонта в строке условие отбора записать следующую команду between [ ] and []. Подобное условие позволяет выбрать из таблицы «Ремонты» данные за указанный период. Вид данного запроса в режиме конструктора и SQL представлен на рисунке 9.

Рисунок 9 – Запрос 2

Создать запрос на обновление. Открыть создание запроса в режиме конструктора. Добавить в запрос таблицу «Ремонты». Выбрать в панели быстрого доступа тип запроса – обновление. Поле ОбщаяСтоимость ввести в строке обновление с помощью построителя выражения, записать: [Ремонты]![СтоимостьРемонта] *(100+ [Ремонты]![СтавкаНДС] )/100.

Вид данного запроса в режиме конструктора и SQL представлен на рисунке 10.

Рисунок 10 – Запрос на обновление

Создание перекрестного запроса. Открыть создание запроса в режиме конструктора. Добавить в запрос таблицы «Автомобили», «Сотрудники», «Ремонты». Выбрать в панели быстрого доступа тип запроса – перекрестный. Поле Марка становится заголовком строк, поле Фамилия – заголовком столбцов, поле КодРемонта – значением на пересечении строк и столбцов (количество ремонтов). Ввести новое поле Итого, в которое будет заносится количество поставок по товару – оно становится заголовком строки.

Добавить групповые операции: по полям Марка и Фамилия. По полям КодРемонта и Итого – Count (функция вычисляет количество).

Вид данного запроса в режиме конструктора и SQL представлен на рисунке 11.

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

В режиме конструктора создать запрос. Добавить таблицы: «Сотрудники», «Ремонты». Выбрать поле Фамилия из таблицы «Сотрудники», поля КодРемонта и ОбщаяСтоимость – из таблицы «Ремонты». Добавить групповые операции: по полю Фамилия – группировка, по полю КодРемонта – Count , по полю ОбщаяСтоимость – Sum.

Результаты на рисунке 12.

Рисунок 11 – Перекрестный запрос

Рисунок 12 – Итоговый запрос

Задание 2

Для задания 2 из лабораторной работы № 2 разработать следующие запросы.

1 Получить ФИО, адрес и страну клиентов, чьи заказы еще не выполнены.

2 Получить ФИО и адрес постоянных клиентов, которые разместили более трех заказов.

3 Получить ФИО сотрудников, которые работали с иностранцами.

4 Получить номера заказов, которые разместили иностранные клиенты.

5 Определить, сколько заказов было сделано из каждой страны. На экран вывести страну и количество заказов.

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

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

8 Получить список покупателей и номера контрактов, заключенных в период с _ по _ (период выбрать самостоятельно).

9 Перекрестный запрос: сколько раз каждый покупатель заключал контракт за год? Подвести итог для клиентов. Сортировка – по ФИО клиента.

Задание 3

Для задания 3 из лабораторной работы № 2 разработать следующие запросы.

1 Определить минимальную, максимальную и среднюю цену поставки каждого продукта.

2 Определить последнюю дату поставки каждого продукта.

3 Определить продукты, для которых количество дней, прошедших с последней даты поставки превышает срок их реализации.

4 Получить список скоропортящихся продуктов (срок реализации меньше пяти дней).

5 Получить список поставщиков, которые поставляют более трех наименований товаров.

6 Получить список постоянных поставщиков (осуществивших более пяти поставок).

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

8 Перекрестный запрос: какой объем каждого продукта поставил каждый поставщик? Подвести итог по товарам.