2

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

如果我有一个维度A和两个度量X,并且Y在 MDX 查询之后我得到这个:(
“-”代表“空”或“空”值)

       X   Y
A.A1   1   - 
A.A2   -   2
A.A3   -   - 

如果我使用“NON EMPTY”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

注意:我确实尝试过,filter但没有得到任何改进

4

2 回答 2

0

我不确定 Mondrian 是否支持这一点,但在 Analysis Services 中,您可以HAVING像这样在行轴上使用:

SELECT {Measures.X, Measures.Y}
       ON COLUMNS,
       A.Members
       HAVING Measures.X <> 0 AND Measures.Y <> 0
       ON ROWS
  FROM MyCube

NON EMPTY仅查看空(即NULL)值相反,对于HAVING,您可以自己声明条件。在 Analysis Services 中,数字比较将NULL相同的方式视为零,因此上述条件不包括 null 和零。

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

于 2013-10-30T10:08:16.313 回答
0

我滥用了'FORMAT_STRING'!,我只应用了一种格式,感谢这个链接http://social.msdn.microsoft.com/Forums/en-US/2715b737-a9a5-4094-8235-df71e92b7bb2/how- to-remove-null-values-in-mdx引用此链接http://msdn.microsoft.com/en-us/library/ms146084.aspx

数值的正确格式是:

FORMAT_STRING = '#0;;;0'

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

于 2013-10-30T18:08:23.210 回答