настройка фильтра диапазона дат в сохраненной формуле поиска - PullRequest
0 голосов
/ 12 июня 2018

Я ищу руководство по написанию фильтра диапазона дат в сохраненной формуле поиска.Например, ниже приведена информация о продажах определенного типа, но также необходимо добавить фильтр даты, чтобы получать только продажи за этот год.Я понимаю, что могу установить фильтр даты в разделе фильтра, но мне также нужно добавить другие столбцы в этом отчете, которые будут отображать суммы транзакций различных типов и дат.Спасибо заранее за любые данные.Формула: CASE WHEN {action.type} = 'Счет-фактура' AND {action.custbody1} = 'Прямое' THEN {action.amount} end

1 Ответ

0 голосов
/ 12 июня 2018

Вы можете использовать функцию 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)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...