0

我正在寻找有关如何在保存的搜索公式中编写日期范围过滤器的一些指导。例如,下面是我目前看到的某种类型的销售额,但还需要添加日期过滤器,以便仅获取今年迄今为止的销售额。我知道我可以在过滤器部分设置日期过滤器,但我还需要在此报告中添加其他列,以显示不同类型和日期的交易金额。提前感谢您的任何意见。公式:CASE WHEN {transaction.type} = 'Invoice' AND {transaction.custbody1} = 'Direct' THEN {transaction.amount} end

4

1 回答 1

0

您可以使用 SQLTO_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当您想组合日期的不同部分时,您可能会发现使用起来更容易。EG: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)

于 2018-06-12T16:11:47.157 回答