Переименование поля в запросе
Устали от длинных имен полей в окне результатов ваших запросов? Используя толькочто полученные знания, касающиеся выражений, можно безболезненно переименовать поле в окне результатов вашего запроса. Все что вам требуется — это вычисляемое поле. Хитрость заключается в создании (с помощью выражения) вычисляемого поля, совпадающего с одним из существующих полей и присвоении ему нового имени. Технически в этом поле не выполняются никакие вычисления, но оно все равно корректно действует. Далее приведен пример вычисляемого поля, которое переименовывает DateCustomerPlacedPurchaseOrderв Date:Date: DateCustomerPlacedPurchaseOrder Новое имя (в данном примере Date)называют псевдонимом (alias).
Используя этот прием, помните о том, что исходное иоле (в данном случае DateCustomerPlacedPurchaseOrder)не надо включать в ваш запрос. Нужная вам информация отображается в вычисляемом поле (Date).
Простая математическая обработка числовых полей
Многие вычисляемые поля полагаются на обычные арифметические операции. В табл. 7.1 представлен краткий обзор основных вариантов комбинирования чисел.
Таблица 7.1. Арифметические операции
Операция | Название | Пример | Результат |
+ | Сложение | 1+1 | |
- | Вычитание | 1-1 | |
Умножение | 2*2 | ||
Возведение в степень | 2^3 | ||
/ | Деление | 5/2 | 2.5 |
\ | Деление нацело (возвращает наименьшее целое число и отбрасывает остаток) | 5\2 | |
Mod | Остаток от деления (возвращает остаток, полученный в результате деления нацело) | 5Mod 2 |
Для создания выражения можно использовать произвольное количество полей и операций. Рассмотрим таблицу Productsс полем QuantityInStock(количество на складе), в котором записано количество единиц товара, находящихся в вашем хранилище. Для определения
стоимости данного товара, имеющегося у вас под рукой, введите следующее выражение, применяющее два поля:
ValueInStock: [UnitsInStock] * [Price]
Подсказка
При выполнении математической операции над полем может произойти сбой, если в поле пропущено значение. Для устранения этой проблемы вам необходима функция Nz ( ), описанная в разд. "Обработка пропущенных или неопределенных значений" далее в этой главе.
Поля с датами
Операции сложения и вычитания можно применять к полям, содержащим даты. (Можно применять и умножение, деление и все что угодно, но реального смысла такие значения иметь не будут.)
Применяя операцию сложения, вы можете добавить обычное число к полю с датой. Это число сдвигает дату вперед на указанное число дней. Далее приведен пример, добавляющий дополнительные две недели к сроку платежа, установленному компанией:
ExtendedDeadline: [DueDate] + 14
Если это выражение применить к дате 10 января 2007 г., новая дата будет.24 января 2007 г.
Используя операцию вычитания, можно найти число дней между двумя датами. Далее показано, как вычисляется период между временем помещения заказа и временем доставки: ShippingLag: [ShipDate] - [OrderDate]
Если доставка произошла через 12 дней после того, как сделан заказ, вы увидите значение 12.
Примечание
Поля типа Дата/времявключают информацию о времени суток. В вычислениях данные о времени представляются как дробная часть числа. Если вы вычли одну дату из другой и получили число 12.25, оно представляет период 12 дней и 6 часов (поскольку 6 часов равно 25% суток).
Помните, что если вы хотите включить фиксированные даты в ваши запросы, их необходимо обрамлять символами # и использовать формат Месяц/День/Год (Month/Day/Year). Далее приведен пример, использующий такой подход для вычисления количества дней между датой своевременного предоставления задания (20 марта 2007 г.) и датой действительного его предоставления: LateDays: [DateSubmitted] - #03/20/07#
Положительное значение указывает на то, что значение в поле DateSubmittedбольше (более поздняя дата), чем предельный срок сдачи — другими словами, студент опоздал. Значение 4 указывает, что студент на 4 дня задержался, в то время как -4 означает, что студент сдал работу на четыре дня раньше назначенного в расписании срока.