计算成员的MDX,具有时间层次结构的两个度量

时间:2012-08-22 12:28:39

标签: sql-server ssas mdx business-intelligence

我有一个包含两个度量的多维数据集,比如度量A和度量B.我需要根据层次结构中任何级别的业务规则,从这两个度量中创建单个度量C,

  1. 如果A在当前级别不为空(具有该级别的所有子级的值),则只聚合A.否则,聚合A无论存在于何处并聚合B,无论A何时不存在,然后将两者相加下进行。
  2. 就像这样

    Quarter    Month    A    B
    Q1         Apr      2    3
    Q1         May           4
    Q1         Jun           4
    

    C应该是季度级别的10。此外,2月2日,5月4日,6月4日[月级]

    我使用了以下MDX,它在月级工作正常。

    IIF(IsEmpty([Measures].[A]), [Measures].[B], [Measures].[A])
    

    但是,在季度级别它只给我2而不是10我现在知道为什么:) 有关构建MDX以使其在任何级别工作的任何指示

    [Year - Semester - Quarter - Month] (Granularity is at Month level only)
    

    会很有帮助。谢谢:))

1 个答案:

答案 0 :(得分:0)

您可以使用此Mdx

Sum(
   Descendants('current member on your time hierarchy', 'month level'),
   CoalesceEmpty([Measures].[A], [Measures].[B])
)

CoalesceEmpty([Measures].[A], [Measures].[B])相当于IIf(IsEmpty([Measures].[A]), [Measures].[B], [Measures].[A])