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

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

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

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

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

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

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

 

 

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

 

 

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

 

 

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

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

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

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

 

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

 

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

 

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

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