Sql server 计算成员的MDX随时间层次结构具有两个度量值

Sql server 计算成员的MDX随时间层次结构具有两个度量值,sql-server,ssas,mdx,business-intelligence,Sql Server,Ssas,Mdx,Business Intelligence,我有一个包含两个度量值的多维数据集,比如度量值a和度量值B。我需要根据层次结构中任何级别的业务规则,从这两个度量值创建一个度量值,比如C 如果A在当前级别不为空,则该级别的所有子级都有值,则只需聚合A。否则,在存在A的位置聚合A,在不存在A的位置聚合B,然后将两者相加,得到C。 事情是这样的 Quarter Month A B Q1 Apr 2 3 Q1 May 4 Q1 Jun

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

如果A在当前级别不为空,则该级别的所有子级都有值,则只需聚合A。否则,在存在A的位置聚合A,在不存在A的位置聚合B,然后将两者相加,得到C。 事情是这样的

Quarter    Month    A    B
Q1         Apr      2    3
Q1         May           4
Q1         Jun           4
C在四分之一级别应为10。此外,4月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)
会有帮助的。谢谢:

您可以使用此Mdx

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