如何在MDX中填写结果-蒙德里安

如何在MDX中填写结果-蒙德里安,mdx,mondrian,Mdx,Mondrian,在MDX中,如何用零填充空值,例如: 如果我有一个维度a和两个度量值X和Y,在MDX查询之后,我得到: -表示空值或空值 X Y A.A1 1 - A.A2 - 2 A.A3 - - 如果使用非空A.A3,则A.A3已消失,但当尝试使用CoalesceEmpty填充零时,我得到以下结果: X Y A.A1 1 0 A.A2 0 2 A.A3 0 0 假设有太多像A.A3这样的元组,我不想显示,我如何用

在MDX中,如何用零填充空值,例如:

如果我有一个维度a和两个度量值X和Y,在MDX查询之后,我得到: -表示空值或空值

       X   Y
A.A1   1   - 
A.A2   -   2
A.A3   -   - 
如果使用非空A.A3,则A.A3已消失,但当尝试使用CoalesceEmpty填充零时,我得到以下结果:

       X   Y
A.A1   1   0 
A.A2   0   2
A.A3   0   0 
假设有太多像A.A3这样的元组,我不想显示,我如何用零填充空值,而不显示所有列中的空元组

结果必须是:

       X   Y
A.A1   1   0 
A.A2   0   2

注意:我尝试过使用过滤器,但没有得到任何改进

我不确定Mondrian是否支持该功能,但在Analysis Services中,您可以在行轴上使用如下功能:

SELECT {Measures.X, Measures.Y}
       ON COLUMNS,
       A.Members
       HAVING Measures.X <> 0 AND Measures.Y <> 0
       ON ROWS
  FROM MyCube
与只查看空i的非空相反。E空值,如果有,您可以自己声明条件。在AnalysisServices中,数值比较将NULL视为零,因此上述条件不包括NULL和零


另一种方法(稍微取决于客户端工具)是使用NON-EMPTY保留MDX,而不是使用CoalesceEmpty,而是通过格式字符串将空值转换为0。这要求客户端工具使用多维数据集提供的格式字符串或格式值,而不是实现自己的数字格式。

我误用了“格式字符串”!,我只应用了一种格式,感谢这个链接引用了这个链接

数值的正确格式为:

格式_字符串='0;;;0'


其中最后一个值是空值的格式

仍然不清楚您想说什么或做什么。请试着澄清你想做什么?是否将空内容更改为0?如果它们都是空的,请将其完全移除?等等?我稍微澄清一下我的问题,我想把空的东西改成0,如果它们都是空的,就把它们全部删除。谢谢您的回答相当正确,我使用非空和格式_string='0;;解决了我的问题;;;0'. 蒙德里安不支持,谢谢