首先,请允许我在前言中说我正在使用称为“Discoverer”的Oracle BI工具,并且无法直接进行SELECT查询。我写这是一个计算。我无权访问管理员版本,无法编辑当前功能。但是,仍然欢迎这种建议。
我已经浏览过互联网,无法想出这一点。在发现者中,我有一个函数将多个记录(正是我想要的)拉到2015年6月11日的日期,如下所示:
FIRST_VALUE(Sla Due Date) OVER(PARTITION BY Vw Research Sla.Loan Id ORDER BY Sla Type )
但是,当我将此函数插入CASE WHEN THEN THEN函数时,它不会返回一个值(它返回null而不是FIRST_VALUE值),如下所示:
CASE WHEN Contract Type IN ('Recon Contract') AND State IN ('GA')
THEN TRUNC(Static OOC Date)-35
WHEN Contract Type IN ('Recon Contract')
THEN TRUNC(Static OOC Date)
WHEN Contract Type IN ('Assignment Contract')
THEN FIRST_VALUE(Sla Due Date) OVER(PARTITION BY Vw Research Sla.Loan Id ORDER BY Sla Type )
ELSE TRUNC(Sla Due Date) END
我尝试用计算名称替换CASE语句中的FIRST_VALUE,而不是使用直接分析函数,它仍然给出一个空值
CASE WHEN Contract Type IN ('Recon Contract') AND State IN ('GA') THEN TRUNC(Static NTC OOC Date)-35 WHEN Contract Type IN ('Recon Contract') THEN TRUNC(Static NTC OOC Date) WHEN Contract Type IN ('Assignment Contract') THEN **mSLA** ELSE TRUNC(Sla Due Date) END
更新:我与我的一家公司DBA进行了交谈,他们将SQL Inspector中的代码插入到Dell的TOAD for Oracle中,并输出数据。这似乎只是Discoverer如何在CASE语句中编译分析函数的问题。对此或其他任何人的任何建议都有类似的问题吗?
答案 0 :(得分:0)
FIRST_VALUE计算应该在Discoverer Administrator中添加到文件夹中。 Discoverer的问题是它无法正确确定CASE语句所需的FIRST_VALUE数据类型。
10年以上Oracle Discoverer经验。