Создайте запрос подсчитывающий стоимость заказа, учитывающий наличие или отсутствие Аудиосистемы и Климатсистемы, а также в стоимость должна включаться только стоимость коробки передач типа АКПП.
Для этого вам понадобится встроенная функция сравнения IIf в Access.
Функция IIf используется для оценки выражения в значениях True или False (Истина или Ложь) и возвращения указанного значения, если выражения возвращает значение True, либо другого указанного значения, если выражение возвращает значение False.
Синтаксис
IIf(выражение, если_истина, если_ложь)
Функция IIf имеет следующие аргументы (Аргумент. Значение, предоставляющее информацию для действия, события, метода, свойства, функции или процедуры.):
Аргумент | Описание |
выражение | Обязательный. Выражение, которое требуется вычислить. |
если_истина | Обязательный. Значение или выражение, возвращаемое, если значением аргумента выражение является Истина. |
если_ложь | Обязательный. Значение или выражение, возвращаемое, если значением аргумента выражение является Ложь. |
Функция IIf всегда вычисляет аргументы если_истина и если_ложь, хотя возвращает только один из них. В результате этого могут возникать нежелательные побочные эффекты. Например, если при вычислении аргумента если_ложь возникнет ошибка деления на ноль, то функция вернет ошибку, даже если значением аргумента выражения является Истина.
|
|
В вашем случае данная функция будет использоваться для полей «Коробка передач», «Климатсистема» и «Аудиосистема» в таблице Заказы.
[Стоимость]+IIf([Заказы].[Климатсистема]=Истина;[Ассортимент].[Климатсистема];0)
В данном примере показано то, что если в таблице Заказы по полю «Климатсистема» в данной записи включен флажок, то значение для вычисления берется из таблицы Ассортимент по полю «Климатсистема» и складывается с полем «Стоимость». Иначе берется значение 0 и складывается с полем «Стоимость».
Для того чтобы вычислить полную стоимость необходимо использовать выражение:
"Итоговая стоимость": ([Стоимость]+IIf([Заказы].[Климатсистема]=Истина;
[Ассортимент].[Климатсистема];0)+IIf([Заказы].[Коробка передач]='АКПП';
[Ассортимент].[Коробка передач];0)+IIf([Заказы].[Аудиосистема]=Истина;
[Ассортимент].[Аудиосистема];0))*[Заказы].[Количество]