在SQL中,您可以将字段与
形式的集合进行比较[Foo] In {"Bar1", "Bar2", ... , "BarN"}
但是,我在解决如何将过滤器表达式移动到这样的问题时遇到了麻烦。也就是说,现在,我最终得到:
Filter(
[MyHierarchy].[Foo].Members,
[MyHierarchy].CurentMember.Name = "1"
OR [MyHierarchy].CurentMember.Name = "2"
...
OR [MyHierarchy].CurentMember.Name = "N"
)
由于我有20到30个比较,并且heirarchy名称有可能发生变化,我更倾向于维护集合和层次结构名称而不是长表达式。有没有办法实现这个目标?
值得注意的是,上下文是一个Excel CubeSet函数,所以我在WITH子句中定义自己的成员方面有点受限。
答案 0 :(得分:0)
假设您有一个名为SelectedMembers
的集合,您可以使用
Intersect([MyHierarchy].[Foo].Members, [SelectedMembers])
你当然也可以直接编码,i。即
Intersect([MyHierarchy].[Foo].Members,
{
[MyHierarchy].[Foo].[1],
[MyHierarchy].[Foo].[2],
...
[MyHierarchy].[Foo].[N]
}
)
但是在多维数据集计算脚本中定义集合可能更方便 - 如果可行的话。