You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server中MDX多成员过滤失效问题求助

解决MDX多BSCID成员过滤的问题

嗨,我来帮你搞定这个MDX的过滤问题~你之前的写法不对是因为[Dim BSC].[BSCID].&[1,2]并不是表示匹配键为1和2的两个成员,而是在找键值是"1,2"的单个成员,自然就返回空结果啦。下面给你几种正确的多成员过滤写法:

方法1:使用IN运算符(最推荐)

把需要匹配的成员放在一个集合里,用IN判断当前成员是否属于这个集合,写法简洁直观:

FILTER(
  [Dim BSC].[BSCID].CHILDREN,
  [Dim BSC].[BSCID].CURRENTMEMBER IN {[Dim BSC].[BSCID].&[1], [Dim BSC].[BSCID].&[2]}
)

方法2:用OR连接多个等于条件

如果成员数量不多,也可以直接用逻辑或来逐个判断:

FILTER(
  [Dim BSC].[BSCID].CHILDREN,
  [Dim BSC].[BSCID].CURRENTMEMBER = [Dim BSC].[BSCID].&[1] 
  OR [Dim BSC].[BSCID].CURRENTMEMBER = [Dim BSC].[BSCID].&[2]
)

方法3:直接指定成员集合(更高效)

如果你只是要获取这两个特定的子成员,其实完全不需要用FILTER,直接构造集合就行,这样比遍历所有子成员的FILTER效率更高:

{[Dim BSC].[BSCID].&[1], [Dim BSC].[BSCID].&[2]}

当然,如果你的过滤逻辑还有其他附加条件,那还是用前两种结合FILTER的方式更合适。

内容的提问来源于stack exchange,提问作者David

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:31:21