Можно использовать следующий расчет:
MIN(IF([Net Sales Units]>100) THEN [Prod Cal Activity Date] ELSE #2100-01-01# END)
Часть вычисления IF([Net Sales Units]>100) THEN [Prod Cal Activity Date] ELSE #2100-01-01# END
преобразует дату в очень высокое значение (в примере 2100 год) для всех случаев, когда продажи были более 100 единиц. Как только это будет сделано, вы можете просто взять минимум расчетной даты, чтобы получить желаемый результат. Если вам нужно это по коду стиля, то вы можете добавить фиксированную функцию в начале.
Несколько способов еще больше упростить, если хотите. Они не меняют смысла.
- Вам не нужны круглые скобки вокруг логических выражений, как в C.
- Вы можете полностью исключить предложение ELSE. Выражение if будет по умолчанию нулевым в тех случаях, когда условие было ложным. Функции агрегирования, такие как MIN (), MAX (), SUM () и т. Д. c, автоматически игнорируют пустые значения, поэтому вам не нужно придумывать какую-либо будущую дату по умолчанию.
Итак MIN(IF [Net Sales Units] > 100 THEN [Prod Cal Activity Date] END
в точности эквивалентно, для чтения нужно всего несколько символов.
Следующий возможный поворот имеет немного аналитического c значения, помимо простого нажатия клавиш.
Вам не нужно жестко кодировать выбор функции агрегирования в расчете. Вместо этого вы можете назвать свое вычисляемое поле как-то как Дата высокой активности продаж , определенное как просто
if [Net Sales Units] > 100 then [Prod Cal Activity Date] end
Это поле содержит только дату записи с высокими продажами, и ноль для записей с низкими продажами. Но если исключить функцию агрегирования из расчета, у вас будет больше возможностей использовать ее по-разному. Например, вы можете
- Рассчитать самую раннюю (т. Е. Минимальную) верхнюю дату продаж, как было запрошено изначально
- Рассчитать самую позднюю высокую дату продажи, используя Макс.
- Фильтровать только даты с высокими продажами путем фильтрации специальных ненулевых значений
- Рассчитайте количество дат высоких продаж с помощью COUNTD
Простые маленькие вычисления фильтрации, подобные этой, могут быть очень полезными - так называемые из-за встроенный оператор if эффективно отфильтровывает значения, которые не соответствуют условию. Для других записей все еще есть нулевые значения, но поскольку функции агрегирования игнорируют нулевые значения, вы можете считать их эффективными, отфильтрованными при вычислении.