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

Posted

技术标签:

【中文标题】对列值使用变量提示和过滤语句【英文标题】:Using A Variable prompt and a filter statement for a column value 【发布时间】:2017-04-03 15:47:31 【问题描述】:

我正在使用过滤器语句对数据运行计算的分析。用户希望能够在两个不同的值之间进行更改以查看不同的场景组合。我不断收到公式的语法错误,无法弄清楚我哪里出错了。

((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")))

【问题讨论】:

您好,尝试为变量加上单引号,如下所示:'@Scenario_2Plan' 我以为那只是字符串,我已经设法得到它,所以它不会引发语法错误,但它仍然会出现 0 所以表示该值为null,而您的公式将null值转换为0。您可以再次检查公式的部分是否应该返回特定值。 【参考方案1】:

所以我终于解决了这个问题,所以我想我会发布完整的答案,感谢那些发表评论的人,他们有答案的组成部分。所以我们遇到的最初问题是 IN 部分,它应该是一个 = 符号来完成 FILTER 表达式。其次,我们没有为 Scenario.Scenario 设置过滤器 - 默认为等于变量表达式。第三是我们试图在仪表板中输入我们不需要的 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'))))

【讨论】:

以上是关于对列值使用变量提示和过滤语句的主要内容,如果未能解决你的问题,请参考以下文章

使用相同的 ID 列递增地对列值求和

基于多索引对列值求和

创建视图并对列值进行求和

使用 sqlbulktools 更新表时对列值求和

Laravel 选择列,然后按日期对列值进行分组

如何使用数据从初始到最终对列值进行排序