Как мне кодировать динамический диапазон дат NetSuite, который начинается 1-го числа месяца (4 месяца назад) и заканчивается последним днем ​​прошлого месяца? - PullRequest
0 голосов
/ 16 января 2019

Я создаю поле формулы (числовое) в критериях поиска транзакций 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 вернет меня к первому месяцу. Куда я иду не так?

1 Ответ

0 голосов
/ 16 января 2019

Вы были близки. Я думаю, что это будет работать для вас. Первая дата возвращается на 5 месяцев назад и добавляет день, вторая - к последнему дню предыдущего месяца.

CASE WHEN {trandate} BETWEEN
LAST_DAY(ADD_MONTHS({today},-5))+1 AND
LAST_DAY(ADD_MONTHS({today},-1)) THEN 1 ELSE 0 END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...