Мне нужно руководство по созданию фильтра диапазона дат в сохраненной формуле поиска. Например, ниже приведено то, что у меня есть до сих пор, чтобы увидеть продажи определенного типа, но также необходимо добавить фильтр даты, чтобы получить только продажи за этот год на сегодняшний день. Я понимаю, что могу установить фильтр даты в разделе фильтров, но мне также нужно добавить в этот отчет другие столбцы, в которых будут отображаться суммы транзакций разных типов и дат. Спасибо заранее за любые данные. Формула: СЛУЧАЙ, КОГДА {transaction.type} = 'Invoice' AND {transaction.custbody1} = 'Direct' THEN {transaction.amount} end
установка фильтра диапазона дат в сохраненной формуле поиска
Ответы (1)
Вы можете использовать функцию SQL TO_CHAR
для возврата текстовых частей даты для сравнения с соответствующими текстовыми частями sysdate
. В приведенном вами примере это будет выглядеть так:
CASE WHEN {transaction.type} = 'Invoice'
AND {transaction.custbody1} = 'Direct'
AND TO_CHAR({trandate}, 'YYYY') = TO_CHAR(sysdate, 'YYYY')
THEN {transaction.amount}
END
Вы можете использовать один и тот же подход с разными форматами, чтобы получить практически любую дату. Вы также можете использовать EXTRACT
, чтобы немного повысить производительность в некоторых ситуациях. EXTRACT
возвращает число, а не текст.
CASE WHEN {transaction.type} = 'Invoice'
AND {transaction.custbody1} = 'Direct'
AND EXTRACT(YEAR from {trandate}) = EXTRACT(YEAR FROM sysdate)
THEN {transaction.amount}
END
Вам может показаться, что TO_CHAR
проще использовать, если вы хотите комбинировать разные части даты. Напр .: TO_CHAR({trandate}, 'YYYY-MM') = TO_CHAR(sysdate, 'YYYY-MM')
, а не EXTRACT(YEAR from {trandate}) = EXTRACT(YEAR from sysdate) AND EXTRACT(MONTH from {trandate}) = EXTRACT(MONTH from sysdate)
person
Krypton
schedule
12.06.2018