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

Создание третьего запроса.

Запрос - «какие клиенты заказали тот или иной товар и сколько» может быть реализован следующим образом.

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

необходимо ввести слово «Стол». Результат будет следующий:

Результат не особенно нагляден, так как названия фирм повторяются. Если в запросе включить группировку по названию организации этот недостаток будет устранен. Кроме того недостатком такого запроса является то, что необходимо помнить точные названия всех видов товаров. Однако, если запускать этот запрос из формы, где в поле со списком будет выбираться наименование товара и вставляться на место параметра, то этот недостаток устраняется. Реализация этого подхода будет рассмотрена ниже в разделе «Расширение функциональности приложений». SQL выражение для запроса:

SELECT Клиенты.Организация, Заказ.[Номер заказа], Товар.Наименование, Спецификация.Количество

FROM Товар INNER JOIN (Клиенты INNER JOIN (Заказ INNER JOIN Спецификация ON Заказ.[Номер заказа] = Спецификация.[Номер заказа]) ON Клиенты.[Код клиента] = Заказ.[Код клиента]) ON Товар.[Код товара] = Спецификация.[Код товара]

WHERE (((Товар.Наименование)=[Товар]));

Создание четвертого запроса

Запрос – «Какова стоимость продаж за заданный период» реализуется как показано на рисунке ниже. Запрос имеет два параметра и поле в виде расчетного выражения. Поле «Дата заказа» используется только для отбора заказов, поэтому в позиции «Групповые операции» выбран пункт «Условие».

Впроцессе выполнения запроса используются два параметра [Начало периода] и [Конец периода].

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

Результат выполнения запроса будет иметь следующий вид.

SQL выражение для запроса будет выглядеть так:

SELECT Sum([Цена]*[Количество]*(1+[Наценка]-[Скидка])) AS Стоимость

FROM Заказ INNER JOIN Спецификация ON Заказ.[Номер заказа] = Спецификация.[Номер заказа]

WHERE (((Заказ.[Дата заказа])>=[Начало периода] And (Заказ.[Дата заказа])<=[Конец периода]));

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

Проектирование отчетов

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

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

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

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

  3. Получить общие итоги по отчету.

Для создания отчета необходимо активизировать вкладку «Отчеты» окна базы данных и нажать кнопку «Создать» или «Создание отчета с помощью мастера».

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

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

После нажатия кнопок «ОК» и «Далее >» появится окно, где будет предложено выбрать вид отчета. Одним из вариантов вида отчета может быть следующий.

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

В результате макет отчета будет выглядеть так.

В полученном макете в соответствии с требованиями к отчету необходимо выполнить следующие изменения:

  1. Вставиь поле с порядковыми номерами строк в группах;

  2. Исправить некоторые заголовки столбцов отчета;

  3. Заменить надпись «Sum» в примечании группы «Организация» на «Итого по клиенту».

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

Сохранив макет и открыв отчет в режиме просмотра получим (показано только содержимое отчета без рамок).

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

Задание!

Придумайте 3-4 запроса для данной базы и оформите их результаты в виде отчетов и сделайте описание SQL выражений этих запросов.