对列值使用变量提示和过滤器语句

时间:2017-04-03 15:47:31

标签: variables obiee

我正在使用一个使用filter语句对数据运行计算的分析。用户希望能够在两个不同的值之间切换以查看场景的不同组合。我一直在公式上遇到语法错误,无法弄清楚我哪里出错了。

((FILTER(IFNULL("INDRATES"."Client Site Wrap Rate", 0)USING ("Scenario"."Scenario - Default" IN @{"Scenario_1"}{'Forecast'})))-(FILTER(IFNULL("INDRATES"."Client Site Wrap Rate", 0)USING ("Scenario"."Scenario - Default" IN @{"Scenario_2"}{'Plan'}))))

我一直在翻身而且不确定我哪里出错了,任何帮助都会很棒。

更新的代码:

(FILTER(IFNULL("INDRATES"."Client Site Wrap Rate",0) USING ("Scenario"."Scenario - Default" =  @{Scenario_1}{"Scenario"."Scenario - Default"})))-(FILTER(IFNULL("INDRATES"."Client Site Wrap Rate",0) USING ("Scenario"."Scenario - Default" =  @{Scenario_2}{"Scenario"."Scenario - Default"})))

1 个答案:

答案 0 :(得分:1)

所以我终于解决了这个问题所以我想我会发布完整的答案,感谢那些评论的人,他们有答案的组成部分。所以我们遇到的最初问题是IN部分应该是一个=符号来完成FILTER表达式。其次,我们没有为Scenario.Scenario设置过滤器 - Default等于变量表达式。第三是我们试图在仪表板中输入我们不需要的Scenario_1和Scenario_2的默认值(但是需要设置它才能在分析中查看它)。最后,就像第一个提到的评论一样,它确实需要围绕@ {Scenario_1}的单引号,因为它正在搜索文本值而不是数值。正确的语法和工作代码放在下面。

((FILTER(IFNULL("INDRATES"."Client Site Wrap Rate",0) USING ("Scenario"."Scenario - Default" =  '@{Scenario_1}')))-(FILTER(IFNULL("INDRATES"."Client Site Wrap Rate",0) USING ("Scenario"."Scenario - Default" =  '@{Scenario_2}'))))