ЗАДАНИЕ 6

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

Для этого вам понадобится встроенная функция сравнения IIf в Access.

Функция IIf используется для оценки выражения в значениях True или False (Истина или Ложь) и возвращения указанного значения, если выражения возвращает значение True, либо другого указанного значения, если выражение возвращает значение False.

Синтаксис

IIf(выражение, если_истина, если_ложь)

 

Функция IIf имеет следующие аргументы (Аргумент. Значение, предоставляющее информацию для действия, события, метода, свойства, функции или процедуры.):

Аргумент Описание
выражение Обязательный. Выражение, которое требуется вычислить.
если_истина Обязательный. Значение или выражение, возвращаемое, если значением аргумента выражение является Истина.
если_ложь Обязательный. Значение или выражение, возвращаемое, если значением аргумента выражение является Ложь.

 

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

В вашем случае данная функция будет использоваться для полей «Коробка передач», «Климатсистема» и «Аудиосистема» в таблице Заказы.

[Стоимость]+IIf([Заказы].[Климатсистема]=Истина;[Ассортимент].[Климатсистема];0)

В данном примере показано то, что если в таблице Заказы по полю «Климатсистема» в данной записи включен флажок, то значение для вычисления берется из таблицы Ассортимент по полю «Климатсистема» и складывается с полем «Стоимость». Иначе берется значение 0 и складывается с полем «Стоимость».

Для того чтобы вычислить полную стоимость необходимо использовать выражение:

"Итоговая стоимость": ([Стоимость]+IIf([Заказы].[Климатсистема]=Истина;
[Ассортимент].[Климатсистема];0)+IIf([Заказы].[Коробка передач]='АКПП';
[Ассортимент].[Коробка передач];0)+IIf([Заказы].[Аудиосистема]=Истина;
[Ассортимент].[Аудиосистема];0))*[Заказы].[Количество]