我仍然是 MDX 的新手,所以也许这将是一个简单的问题。

我想做一些事情,比如按产品查看销售收入:更具体地说,产品被分类为“类”(其中类可以是 A、B 或 C),所以我想查看 A 类产品、B 类产品的销售额等等。如果维度“产品”具有一个级别为“类”的层次结构“分类”,为了简单起见,假设 MDX 查询如下:

SELECT
[Measures].[Sales] on COLUMNS,
[Product].[Classification].[Class].members on ROWS
FROM [Cube]

问题是,如果没有class='C'的记录,比如数据表Product,就不会有成员'C',对吧?在这种情况下,我想为此显示零计数。所以,而不是:
    | Sales
  A    1000
  B    200

我想要:
    | Sales
  A    1000
  B    200
  C    0

有什么帮助吗?
提前致谢!

最佳答案



由于您的选择不包含 NON EMPTY ... ON ROWS,因此 'C' 应返回一个空单元格作为其 'Sales' 值。您的“客户端”工具可能会忽略它。

您可以做的是使用 CoalesceEmpty () 函数定义计算度量以返回零值而不是空值:

WITH
   MEMBER [Measures].[Sales - X] as
            CoalesceEmpty( ( [Measures].[Sales] ).Value, 0 )

SELECT
    [Measures].[Sales - X] on COLUMNS,
    [Product].[Classification].[Class].members on ROWS
FROM [Cube]

关于MDX:显示不存在成员的零计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19164443/

10-16 10:56