mdx - 如何在度量成员中用'0'替换空值

时间:2014-09-15 15:11:56

标签: mdx

在我的MDX查询中,我在SELECT语句中使用这组度量:

With SET [Selected Measures] AS { 
                                [Measures].[CTR],
                                [Measures].[Cost],                                  
                                [Measures].[Clicks]
                                }

我希望在我的结果中替换'0'中的NULL值。

怎么做?

3 个答案:

答案 0 :(得分:1)

尝试重新定义您的指标:

With member [Measures].[Not Null CTR] as Iif( IsEmpty( [Measures].[CTR] ), 0, [Measures].[CTR] )
...
Select { [Measures].[Not Null CTR], ...} on Columns
...

可能更改某些更好的度量名称或将列重命名为客户端上的原始名称。

编辑:如果你想保留客户输出的名称和名称只是CTR等(没有括号或Measures前缀),你可以在某处获得额外的维度(在其他任何地方都不使用)在查询中),您可以在该额外维度中定义这些新成员:

With member [My Other Dim].[CTR] as Iif( IsEmpty( [Measures].[CTR] ), 0, [Measures].[CTR] )
...
Select { [My Other Dim].[CTR], ...} on rows,
...

绝对不是一个优雅的解决方案,但它确实有效。

答案 1 :(得分:0)

是否有可能触及立方体设计?如果需要,则需要打开多维数据集解决方案,导航到“计算”选项卡并添加以下代码。然后部署更改。

SCOPE([Measures].[CTR]);
IF THIS IS NULL THEN this = 0 END IF;
END SCOPE;

SCOPE([Measures].[Cost]);
IF THIS IS NULL THEN this = 0 END IF;
END SCOPE;

SCOPE([Measures].[Clicks]);
IF THIS IS NULL THEN this = 0 END IF;
END SCOPE;

答案 2 :(得分:0)

基于第一个答案,这是一种适用于多维数据集中所有度量的方法:

SCOPE([Measures].MEMBERS);
  THIS = IIF(IsEmpty([Measures].CurrentMember) , 0, [Measures].CurrentMember);
END SCOPE;

希望有帮助。