当我们在分析里手工编写公式引用表示变量的时候,通常采用如下语法:
FILTER("销量事实表"."总金额" USING ("产品"."产品类型" = '@{表示变量}{默认值}'))
以上公式接受一个表示变量,以便显示不同的产品类型的 总金额;如果这个表示变量只有一个值上面的写法不会有任何问题,但是如果表示变量可能会有多个值的时候呢?
比如用户在仪表盘提示中选择了多个产品类型,这样表示变量就是一个多值变量了。如:类型A和类型B,那么上面的语法最终生成的SQL就会如下:
产品类型='类型A;类型B'
很显然,这样不会返回任何数据,我们需要的是 产品类型 in ('类型A','类型B')
此时我们可能会尝试改变上面的语法为:
FILTER("销量事实表"."总金额" USING ("产品"."产品类型" in ('@{表示变量}{默认值}')))
我们期望他能成为我们所想要的,不过遗憾的是,这样仍然不行,我们需要采用如下的写法:
FILTER("销量事实表"."总金额" USING ("产品"."产品类型" in (@{表示变量}['@']{'Default'}) ))
这样才行。
当然,只有当表示变量是字符型的时候才需要采用如此语法;如果表示变量是整型的,则不需要如此麻烦,直接 in (@{表示变量}) 即可.