Я создаю поле формулы (числовое) в критериях поиска транзакций NetSuite. Моя цель - просмотреть транзакции с {transdate} между 4 месяцами назад (первый день) и последним месяцем (последний день). Динамический диапазон дат важен.
Пример: если сегодняшняя дата 1/15/19, то критерии должны отфильтровывать все транзакции, кроме тех, которые выпадают между 01.09.18 и 31.12.18. Если я запускаю поиск 7/1/19, то диапазон должен быть от 3/1/19 до 6/31 / 19.
Это код формулы (числовой), который не выполняется:
CASE WHEN {trandate} BETWEEN
TO_DATE(TRUNC((ADD_MONTHS({today},-4)),’MONTH’)) AND
TO_DATE(LAST_DAY(TRUNC({today},'MONTH')-1)) THEN 1 ELSE 0 END
Приводит к следующей ошибке:
«В вашей формуле есть ошибка. Это может привести к неправильному типу данных, использовать неизвестную функцию или иметь синтаксическую ошибку. Пожалуйста, вернитесь, исправьте формулу и повторно отправьте. ”
Самым близким к решению проблемы, с которым я столкнулся, является эта итерация:
CASE WHEN {trandate} BETWEEN
TO_DATE(ADD_MONTHS({today},-4)) AND
TO_DATE(LAST_DAY(TRUNC({today},'MONTH')-1)) THEN 1 ELSE 0 END
Проблема в том, что первый код to_date не дает мне первый день месяца. Я заканчиваю с диапазоном 9/15/18 до 31.12.18. Я думал, что добавление TRUNC вернет меня к первому месяцу. Куда я иду не так?