OBIEE 表达式按上一个营业日期过滤
Posted
技术标签:
【中文标题】OBIEE 表达式按上一个营业日期过滤【英文标题】:OBIEE expression to filter by previous business date 【发布时间】:2020-08-11 23:25:15 【问题描述】:我正在尝试提出解决方案,为上一个营业日期自动生成自动 OBIEE 12 报告(例如,在星期一生成报告时,想过滤星期五的数据)。我想出了两个解决方案:
CURRENT_DATE-1
这显然只适用于周二至周六生成的报告。
我还想出了一个更复杂的解决方案,它没有返回任何结果(不知道为什么):
CASE
WHEN DayOfWeek(TimestampAdd (SQL_TSI_DAY, -1 , CURRENT_DATE)) = 1
THEN TimestampAdd (SQL_TSI_DAY, -3 , CURRENT_DATE)
WHEN DayOfWeek(TimestampAdd (SQL_TSI_DAY, -1 , CURRENT_DATE)) = 7
THEN TimestampAdd (SQL_TSI_DAY, -2 , CURRENT_DATE)
ELSE TimestampAdd (SQL_TSI_DAY, -1 , CURRENT_DATE)
END
当使用此表达式过滤日期时,OBIEE 返回没有数据匹配的信息。对于同一日期,使用 CURRENT_DATE-1 生成正确的结果(除了在星期一、星期六和星期日生成的报告之外,ofc)
【问题讨论】:
【参考方案1】:这可能对你有用:
case trim(to_char(sysdate,'DAY'))
when 'MONDAY' then sysdate-3
when 'SUNDAY' then sysdate-2
else sysdate-1
end
返回前一个工作日的日期。
鲍比
【讨论】:
感谢 Bobby,这是完美的 Oracle SQL 语句,可以在常规 Oracle 数据库中正常工作,但对于不支持此语法的 Oracle OBIEE 而言毫无用处。 很抱歉。我猜你需要一个了解 OBIEE 的人。我们有它,但我只看到数据库部分。以上是关于OBIEE 表达式按上一个营业日期过滤的主要内容,如果未能解决你的问题,请参考以下文章