установка фильтра диапазона дат в сохраненной формуле поиска

Мне нужно руководство по созданию фильтра диапазона дат в сохраненной формуле поиска. Например, ниже приведено то, что у меня есть до сих пор, чтобы увидеть продажи определенного типа, но также необходимо добавить фильтр даты, чтобы получить только продажи за этот год на сегодняшний день. Я понимаю, что могу установить фильтр даты в разделе фильтров, но мне также нужно добавить в этот отчет другие столбцы, в которых будут отображаться суммы транзакций разных типов и дат. Спасибо заранее за любые данные. Формула: СЛУЧАЙ, КОГДА {transaction.type} = 'Invoice' AND {transaction.custbody1} = 'Direct' THEN {transaction.amount} end


person Imran    schedule 11.06.2018    source источник


Ответы (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