Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Разработка второго запроса





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

· Построить запрос находящий стоимости заказов (1 базовый запрос);

· Построить запрос, вычисляющий полные суммы оплаты по заказам (2 базовый запрос);

· На основании предыдущих запросов построить запрос, находящий заказы, отвечающие условию:

«Полная сумма оплаты» <= «Сумма стоимости заказа»

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

 

 

Формирование выражения стоимости в позиции поля производится с помощью построителя выражений как показано ниже.

 

 

Выполнение запроса даст следующий результат:

 

 

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

SELECT Клиенты.Организация, Заказ.[Номер заказа], Sum([Цена]*[Количество]*(1+[Наценка]-[Скидка])) AS Стоимость

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

GROUP BY Клиенты.Организация, Заказ.[Номер заказа];

 

Аналогично строится и второй базовый запрос

 

Результат его будет таким:

 

А SQL выражение будет следующим:

SELECT Оплата.[Номер заказа], Sum(Оплата.[Сумма оплаты]) AS [Sum-Сумма оплаты]

FROM Оплата

GROUP BY Оплата.[Номер заказа];

Сравнивая результаты выполнения запросов видим, что среди оплаченных нет 6 и 7 заказов. То есть в итоговом запросе придется объединять базовые запросы по принципу изложенному при построении первого запроса.

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

 

 

Отклонение: [Суммы заказов]![Стоимость] - Nz([Суммы оплаты заказов]![Sum-Сумма оплаты])

Функция Nz используется для того, чтобы перевести возможные значения Null находящиеся в поле Sum-Сумма оплаты в обычный 0, потому что в СУБД Access со значением Null арифметические операции не выполняются. Результат выполнения запроса представлен ниже.

 

 

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

SELECT [Суммы заказов].Организация, [Суммы заказов].[Номер заказа], [Суммы заказов].Стоимость, [Суммы оплаты заказов].[Sum-Сумма оплаты], [Суммы заказов]!Стоимость-Nz([Суммы оплаты заказов]![Sum-Сумма оплаты]) AS Отклонение

FROM [Суммы заказов] LEFT JOIN [Суммы оплаты заказов] ON [Суммы заказов].[Номер заказа] = [Суммы оплаты заказов].[Номер заказа];

 

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

Date: 2016-07-25; view: 317; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию