Sql Oracle发现者:第一个值在案例中不起作用

Sql Oracle发现者:第一个值在案例中不起作用,sql,oracle,oracle10g,business-intelligence,Sql,Oracle,Oracle10g,Business Intelligence,首先,请允许我先说一句,我使用的是Oracle的BI工具“Discoverer”,没有直接选择查询的权限。我写这篇文章是为了计算。我没有访问管理版本的权限,无法编辑当前功能。然而,这类建议仍然是受欢迎的 我在网上搜遍了,找不出这个。在discoverer中,我有一个函数,可以为多个记录(正是我想要的)提取2015年11月6日的日期,如下所示: FIRST_VALUE(Sla Due Date) OVER(PARTITION BY Vw Research Sla.Loan Id ORDER BY

首先,请允许我先说一句,我使用的是Oracle的BI工具“Discoverer”,没有直接选择查询的权限。我写这篇文章是为了计算。我没有访问管理版本的权限,无法编辑当前功能。然而,这类建议仍然是受欢迎的

我在网上搜遍了,找不出这个。在discoverer中,我有一个函数,可以为多个记录(正是我想要的)提取2015年11月6日的日期,如下所示:

FIRST_VALUE(Sla Due Date) OVER(PARTITION BY Vw Research Sla.Loan Id  ORDER BY  Sla Type )
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 when THEN ELSE函数时,它不会返回值(它返回null而不是FIRST_value值),如下所示:

FIRST_VALUE(Sla Due Date) OVER(PARTITION BY Vw Research Sla.Loan Id  ORDER BY  Sla Type )
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语句中的第一个_值,而不是使用直接分析函数,但它仍然给出空值

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,它可以很好地输出数据。这似乎只是一个与Discoveryr如何编译CASE语句中的分析函数有关的问题。对此有任何建议或其他人有类似问题吗?

应在Discoverer Administrator中将第一个\u值计算添加到文件夹中。Discoverer的问题在于,它无法根据CASE语句所需的第一个_值正确确定数据类型


10多年的Oracle Discoveryr经验。

更新:我与我的一家公司的DBA交谈,他们将SQL Inspector中的代码插入Dell的TOAD for Oracle,它可以很好地输出数据。这似乎只是一个与Discoveryr如何编译CASE语句中的分析函数有关的问题。对此有什么建议,或者其他人有类似的问题吗?虽然我恐怕没有答案,但我只想建议你编辑你的问题,将注释包含在评论中。这里的评论可能是暂时的,因此,最好编辑您的问题以包含所有相关信息。谢谢