SSAS如何为无事实匹配的维度值通过SCOPE设置替代度量值
问题根因
你编写的SCOPE语句仅限定了[DIM ABC].[CODE].[C3]单属性坐标,当查询中显式选择DIM ABC Key作为切片/行/列维度时,多维数据集的坐标同时包含DIM ABC Key的成员值,仅DIM ABC Key=3的坐标能和CODE=C3匹配,但原事实表无对应记录,默认非空过滤逻辑会直接排除该组合,导致SCOPE赋值不生效。
修正方案
你需要用到DESCENDANTS函数覆盖CODE=C3对应的所有下级属性成员,同时配置非空行为避免被过滤,无需额外创建自定义度量:
SCOPE ([Measures].[AMOUNT], DESCENDANTS([DIM ABC].[CODE].[C3], [DIM ABC].[DIM ABC Key], SELF)); THIS = [Measures].[Count]; NON_EMPTY_BEHAVIOR(THIS) = [Measures].[Count]; END SCOPE;
逻辑说明
DESCENDANTS函数会将CODE=C3关联的DIM ABC Key=3成员也纳入SCOPE覆盖范围,不管你查询选择的是CODE属性还是DIM ABC Key属性,都能命中赋值规则NON_EMPTY_BEHAVIOR配置会让系统以[Measures].[Count]的非空性为准判断该坐标是否展示,只要另一事实表中C3对应Count有值,就会正常显示,效果和你手动新增Key=3的事实记录完全一致
补充:如果你的DIM ABC维度未配置
DIM ABC Key到CODE的属性关联,也可以直接显式指定两个属性的成员纳入SCOPE:SCOPE ([Measures].[AMOUNT], {[DIM ABC].[CODE].[C3], [DIM ABC].[DIM ABC Key].[3]}); THIS = [Measures].[Count]; NON_EMPTY_BEHAVIOR(THIS) = [Measures].[Count]; END SCOPE;
内容的提问来源于stack exchange,提问作者skk
相关产品推荐
相关产品推荐

