【问题标题】:OBIEE expression to filter by previous business dateOBIEE 表达式按上一个营业日期过滤
【发布时间】: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)

【问题讨论】:

    标签: sql oracle plsql business-intelligence obiee


    【解决方案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 的人。我们有它,但我只看到数据库部分。
    猜你喜欢
    • 1970-01-01
    • 2016-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多