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

Использование шаблонов при организации запросов (в)

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

* любое количество символов;

? один любой символ;

# любая одиночная цифра от 0 до 9;

[список] любой одиночный символ, входящий в список (например, [A-Д] это буква А,Б,В,Г или Д); используется в сочетании с шаблонами * или ?;

[!список] любой одиночный символ, не входящий в список (например [!A-Б] – это любая буква, только не А и не Б); также используется в сочетании с шаблонами * или ?.

Задания

  1. Вывести список всех поставщиков, страна которых начинается на букву Н, а минимальный запас поставляемых ими товаров больше нуля. После перехода в режим таблицы обратите внимание на то, что в строке Условие отбора перед построенном Вами шаблоном появился операторLike. Этот оператор необходим при конструировании шаблонов, но в данном случаеAccessдобавил его в Ваш запрос самостоятельно.

  2. Вывести список марок товаров, количество которых на складе выражается трехзначным числом.

  3. Вывести список клиентов, название которых начинается буквами A,B,C,D,E. Выполнить задание двумя способами, вначале используя логическую функциюOR, а затем – шаблонLike "[A-E]*".

  4. Вывести список клиентов, в телефоне которых отсутствует код (т.е. номер телефона не начинается открывающей скобкой). Используйте шаблон Like "[!(]*".

  5. Используя шаблоны, вывести список клиентов, которые разместили свои заказы в декабре 1997 года.

  6. Аналогично предыдущему запросу, вывести список клиентов, которые разместили свои заказы в апреле 1998 года, но их заказы до сих пор не исполнены.

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

Запросы с группировкой данных (итоговые запросы) (г)

  1. Посчитать число заказов для каждой категории товаров.

  2. Посчитать число товаров в каждой категории.

  3. Вывести список всех марок товаров, средняя стоимость доставки которых не менее 100 руб.

  4. Посчитать число всех заказов, оформленных для клиентов из Мехико.

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

  6. Для каждого сотрудника старше 40 лет посчитать число клиентов.

Указание. Для вывода сотрудников старше 40 лет создать вычисляемое поле(Now()-Сотрудники![ДатаРождения])/365и в качестве условия отбора ввести условие>40.

Итоговые запросы с использованием условия (Д)

  1. Вначале организовать обычный итоговый запрос «Число заказов у клиентов»: Для каждого клиента посчитать количество оформленных им заказов. Список упорядочить по убыванию числа заказов. Исполнение. Добавить в запрос две таблицыКлиенты и Заказы, в бланк запроса добавить полеНазваниеиз первой таблицы и полеКод Заказа – из второй таблицы. Добавить строкуГрупповые операции, в первом поле оставить значение «группировка», а во втором установить значениеCount. Просмотреть результат, переключившись в режим таблицы.

  2. Доработаем данный запрос. Следующая задача поставлена так: Вывести список клиентов, которые оформили более 10 заказов. Исполнение. В полученном в предыдущем задании запросе в полеКод заказа в строкеУсловие отборадобавить условие:>10.

  3. Затем дорабатываем данный запрос решением следующей задачи: Для каждого клиента посчитать количество заказов, исполненных не ранее 1 июня 1997 года.

Исполнение. Помимо двух имеющихся полей, добавить полеДата Исполнения из таблицыЗаказы. В строкеГрупповая операцияв данном поле появится значение «группировка». Переключиться в режим таблицы и убедиться, что ограничение на дату не выполняется. В строкеГрупповая операцияизменить значение «группировка» на значение «условие». В строкеУсловие отборавписать условие:>=1/06/97. Переключиться в режим таблицы и убедиться в правильности выполнения запроса.

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

Используя данную технику, организовать следующие запросы:

  1. Для каждой категории товаров посчитать число товаров, запас которых на складе больше 50.

  2. Для каждого сотрудника посчитать количество клиентов, которым заказ поставлялся по почте.

  3. Для каждого поставщика указать, сколько он поставил различных марок товаров, поставки которых уже прекращены.

  4. Для каждого сотрудника посчитать среднюю стоимость доставки товаров, отосланных в США или в Канаду.

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

  6. Указать, сколько раз каждая марка товаров попала в заказы, которые были размещены в первой половине 1994 года.

  7. Для каждого клиента посчитать сумму, уплаченную за каждый заказ (организовать вычисляемое поле Цена*Количество*(1-Скидка)), а затем вывести список клиентов с указанием суммарной стоимости всех произведенных заказов. Список упорядочить в порядке убывания уплаченной суммы. Ввести условие на страну получателя – не Швеция и не Италия.

  8. Вывести список сотрудников с указанием того, кто сколько раз продавал товары со скидкой.

  9. Для каждого сотрудника посчитать общую сумму выручки от всех заказов (вычисляемое поле Цена*Количество*(1-Скидка)) +Стоимость доставки), страна получателя которых – Франция или Италия.

  10. Вывести список клиентов с указанием того, кому сколько раз были проданы товары без скидки, и вывести список первых десяти клиентов, которым чаще всего продавались товары без скидки (нужным образом упорядочить запрос, с помощью контекстного меню активизировать окно «Свойства запроса» и в строке Набор значенийввести цифру 10).

  11. Посчитать общую стоимость каждой марки товаров, поставленных в Германию не по почте (учесть цену единицы товара, количество, скидку и стоимость доставки). Вывести первые 25% самых прибыльных марок.

  12. Вывести список клиентов с указанием общего количества дней ожидания исполнения заказов на товары, минимальных запас которых на складе не равен нулю. Ограничить список выводом первых пяти самых «невезучих» клиентов, которым пришлось дольше всего дожидаться исполнения заказов.