mysql - 使用 SQL Oracle BIEE 根据用户输入过滤计算列 -

标签 mysql sql oracle oracle11g dashboard

我正在 Oracle BIEE (11.1) 中创建仪表板,并需要根据用户输入创建日期间隔列。例如,用户选择今天的日期,并且该列根据过滤器对这些值运行计算。该过滤器将按照从两年前到一年前的日期,返回一年前的一年结果。

这是在 Oracle BIEE 应用程序中,我无权直接更改数据库。所以我必须在应用程序端和分析中执行此操作。

下面是条件选项卡上计算列的 SQL。 “SUM(CASE”工作正常,但我的过滤器有问题。

FILTER(SUM(CASE WHEN "Violations"."Current status of violation in the
adjudication process" = 'A' OR "Violations"."Current status of violation in 
the adjudication process" = 'D' OR "Violations"."Current status of violation     
in the adjudication process" = 'V' THEN 1 ELSE 0 END) USING
(("Violations"."Violation Date" IN ("Violations"."Violation Date" >=
TIMESTAMPADD(SQL_TSI_MONTH,-24, DATE'@{q1}'))))  

我收到的错误: 公式语法无效。 [nQSError: 10058] 发生一般错误。 [nQSError: 43113] 从 OBIS 返回的消息。 [nQSError: 27002] Near <>=>: 语法错误 [nQSError: 26012]。请让系统管理员查看日志以获取有关此错误的更多详细信息。 (HY000) 发出 SQL: SELECT FILTER(SUM(CASE WHEN "Violations"."当前裁决过程中的违规状态"= 'A' OR "Violations"."当前裁决过程中的违规状态"= 'D' OR "Violations "."裁决过程中违规的当前状态"= 'V' THEN 1 ELSE 0 END) USING (("违规"."违规日期"IN ("违规"."违规日期">= TIMESTAMPADD(SQL_TSI_MONTH,- 24,日期'')))) 来自“FIC - ECB 违规通知”

我是 Oracle BI 的新手,但知道这应该是可能的。有什么建议吗?

最佳答案

我的解决方案:

FILTER(SUM(CASE WHEN "Violations"."Current status of violation in the 
adjudication process" = 'A' OR "Violations"."Current status of violation in     
the adjudication process" = 'D' OR "Violations"."Current status of violation 
in the adjudication process" = 'V' THEN 1 ELSE 0 END) USING 
("Violations"."Violation Date" BETWEEN TIMESTAMPADD(SQL_TSI_MONTH, -18,date     
'@{q1}') AND TIMESTAMPADD(SQL_TSI_MONTH, -6,date '@{q1}')))

我的目标是根据用户输入创建一个时期。解决方案是在用户变量之前添加前面的“date”函数,并使用“BETWEEN”函数而不是“<=/=>”。我还必须将“q1”设置为变量提示而不是列变量。您可以在 oracle BI 的过滤器部分或单击列时在编辑公式部分运行此命令。

关于mysql - 使用 SQL Oracle BIEE 根据用户输入过滤计算列 -,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31620116/

相关文章:

java - jdbc kerberos oracle认证问题

mysql - 从一张表中显示两个名称不同的 id

php - 我试图用 JSON 对表中的所有数据进行编码,但没有结果

mysql - 插入后知道行的主键

mysql - 更新多个表中的数据

mysql - 在查询结果中排在第一位的特定值(只有一个)。按时间戳休息订单

sql - 插入大于 2000 或 4000 字节的 BLOB 测试字符串

Oracle索引默认使用b-tree还是b+tree?

php - MySQL 向 SET 元素添加值

sql - 查询返回的组数