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

Построение запросов с записями без подчиненных (з)

  1. Найти клиентов, не сделавших ни одного заказа. Исполнение:

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

  • Для поисков клиентов без заказов необходимо изменить тип связей между используемыми таблицами. Для этого в режиме конструктора надо щелкнуть дважды по линии связи, в результате чего появится диалоговое окно «Параметры объединения». Оно содержит три опции. В данном запросе надо установить вторую опцию. После нажатия кнопки OK на одном из концов линии связи появляется стрелка. Снова просмотреть результат и отметить количество записей (их должно быть больше, если существуют клиенты, не сделавшие ни одного заказа). Просмотреть список и найти таких клиентов.

  • Подумать, каким образом можно ускорить процесс поиска нужных записей (использовать сортировку).

  • Попробовать в качестве условия отбора в столбце Код заказа записатьNull илиIsNull. Просмотреть результат.

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

  1. Проверить, имеются ли среди сотрудников такие, которые не оформили ни одного заказа.

  2. Проверить, есть ли в списке товаров такие, которые не входят ни в один заказ.

  3. Вывести список клиентов, которым ни разу не просрочили заказ. Указание:

  • Сначала построить запрос, позволяющий вывести всех клиентов, которым хоть раз просрочили заказ.

  • На основе полученного запроса и таблицы Клиенты, используя нужные параметры объединения таблиц, построить требуемый запрос. При добавлении таблиц в поле запроса использовать вторую вкладку Запросы.

  1. Вывести список сотрудников, у которых время просрочки заказа ни разу не превышало 10 дней.

  2. Вывести список клиентов, которые не размещали свои заказы позднее 1 января 1997 года.

  3. Вывести список клиентов, которые получали свои заказы только по почте.

Указание:

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

  • Соединить в новом запросе таблицу Клиенты и полученный запрос и, используя параметры объединения, вывести всех клиентов, получавших заказы по почте или не производивших заказов вообще.

  • Соединив полученный запрос с первым запросом по данной теме, вычленить только тех клиентов, которые заказы производили, но получали их только по почте.

  1. Вывести список поставщиков, поставляющих только напитки.

Модифицирующие запросы (е)

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

  1. запросы создания таблиц,

  2. запросы удаления,

  3. запросы добавления,

  4. запросы обновления.

Запросы создания таблиц

Задание 1. Создать сокращенную таблицу из таблицыКлиенты, которая будет содержать сведения только о клиентах из США.

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

Выберите поля, которые должны присутствовать в запросе и введите условия для полей (для данного запроса необходимо выбрать все поля и для поля Странаустановить условие США).

Далее необходимо выполнить специфические инструкции для запросов создания таблиц:

  • в пункте меню Запрос выбрать тип запросаСоздание таблицы (можно использовать контекстное меню бланка запроса или кнопку на панели инструментов);

  • в появившемся окне Создание таблицынеобходимо указать имя создаваемой таблицы (например,Клиенты из США). Можно выбрать существующую таблицу из раскрывающегося списка, но при этомAccessзаменит (!) старую таблицу новой;

  • выберите базу данных, в которую необходимо поместить новую таблицу: в текущую базу данных или в другую базу данных. Если вы выбрали другую базу данных, то введите ее полное (!) имя. Для данного запроса добавьте новую таблицу в текущую базу данных;

  • просмотрите таблицу перед тем, как создать ее (т.е. перейдите в режим таблицы). Вернитесь в режим конструктора;

  • выполните запрос. Обратите внимание, что при запуске запроса создания таблицы (или другого модифицирующего запроса), вы не увидите таблицу с полученными записями. Accessзапустит на выполнение запрос, выдаст соответствующее предупреждение, а потом создаст таблицу;

  • перейдите в окне базы данных на вкладку Таблицы и просмотрите созданную таблицу в режиме конструктора. Обратите внимание, что типы полей и размеры каждого поля будут такими же, как и в исходной таблице. Но у новой таблицы отсутствует первичный ключ. Ни одно другое свойство, кроме выше перечисленных, не наследуется из исходной таблицы. Создайте первичный ключ для новой таблицы.

Задание 2. Фирма открывает филиал, который будет работать с Бразилией. Создайте новую базу данныхФилиал. Создайте в этой базе данных таблицу, содержащую сведения о клиентах из Бразилии.

Задание 3. Создать таблицу, в которой для каждого клиента будет указано количество оформленных им заказов.

Задание 4. Создать таблицу, содержащую для каждого сотрудника количество неисполненных заказов.