MDX计算成员总数

MDX计算成员总数,mdx,calculated-columns,totals,Mdx,Calculated Columns,Totals,我将“上一期间”的计算成员用作: 我的模糊时间。日历以年、月、日为级别。很简单:) 选择某些月份时,年度合计是该年度的总计,而不是所选月份的合计。 选择某些日期时,月总数是该月的总计,而不是所选日期的总数 编辑以添加示例: Case When [Dim Time].[Calendar].CurrentMember.Level Is [Dim Time].[Calendar].[(All)] Then "NA" Else (ParallelPeriod([Dim Time].[Calendar].

我将“上一期间”的计算成员用作:

我的模糊时间。日历以年、月、日为级别。很简单:)

选择某些月份时,年度合计是该年度的总计,而不是所选月份的合计。 选择某些日期时,月总数是该月的总计,而不是所选日期的总数

编辑以添加示例:

Case
When [Dim Time].[Calendar].CurrentMember.Level Is [Dim Time].[Calendar].[(All)]
Then "NA"
Else (ParallelPeriod([Dim Time].[Calendar].[Year],
      1,
      [Dim Time].[Calendar].CurrentMember),[Measures].[Sales])
End
Year    Month   Day Sales previous year Sales
2015    04      03      74,154.56 €     135,156.41 €
    Total 04         2,617,045.75 €     135,156.41 €
Total 2015          37,696,665.69 €     135,156.41 €
(不确定我是否应该发布答案,因为它尚未解决,但似乎我找到了正确的方向)

使用这些建议,我定义了一个动态集(在多维数据集定义时使用MS SAS):

和计算成员(在Excel上,更容易测试不同的语法):

现在我得到所有行的值为1,单个行、小计、总计。。。而不是所选月份的预期天数和总和

也许有更好的MDX知识的人可以进一步开发它

我还使用post count(后代和count(现有)(…原始[Dim Temps].[Calendar])的示例添加了CM,这就是我得到的:

    Year    Month   Day Previous sales  Sales          CountExisting    CountDescendants    CountDays
    2015    04      03      74,154.56 € 135,156.41 €      1   1 1
                    04     132,992.88 € 152,179.24 €      1   1 1
                    05     130,651.80 € 128,971.65 €      1   1 1
    Total 04             2,617,045.75 € 416,307.30 €     31  31 1
Total 2015              37,696,665.69 € 416,307.30 €    365 365 1
我无法理解如何使用新的动态集,因为我无法访问其组件,我希望[DynSet].[Year][Month]和[Day]存在,以便我可以在上一个期间表达式中使用它们,但它们没有,因此不确定如何将其用于我的目的

Thks

编辑:

Case
When [Dim Time].[Calendar].CurrentMember.Level Is [Dim Time].[Calendar].[(All)]
Then "NA"
Else (ParallelPeriod([Dim Time].[Calendar].[Year],
      1,
      [Dim Time].[Calendar].CurrentMember),[Measures].[Sales])
End
Year    Month   Day Sales previous year Sales
2015    04      03      74,154.56 €     135,156.41 €
    Total 04         2,617,045.75 €     135,156.41 €
Total 2015          37,696,665.69 €     135,156.41 €
试图定义

CREATE DYNAMIC SET CURRENTCUBE.[DynSet] AS [Dim Time].[Calendar].[Day]
现在我的最后一列,即count([DynSet])的所有行的值都是3


仍然不知道如何使用[DynSet]级别…

我花了将近两周的时间,大量的搜索时间和十几个不同的论坛,但最终我得到了一个体面的答案,解决了这个问题

看一看

简而言之,添加一个命名计算(不是计算成员)并确定公式的范围

SCOPE([Measures].[Previous_Sales]);
    SCOPE([Dim Time].[Calendar].[Day].MEMBERS);
            THIS = ([Measures].[Sales], ParallelPeriod([Dim Time].[Calendar].[Year])) ;
    END SCOPE;
END SCOPE;

一旦你知道了就足够简单了!

嗨,DeepButi-有人能帮你解决你以前的
mdx
问题吗?比如这一个:你所指的问题已经解决了,但只针对Mondrian(如你所说)。我在其他论坛上直接问了一些其他问题,因为它们是针对所用工具的(Pentaho套件)。但这是通用的,我使用的是MicroSoft Olap多维数据集和Excel dinamic表格。我认为这个论坛应该是一个合理的提问场所。也许我错了……计算的方向是在多维数据集脚本中,还是在Excel中?您使用的是哪个版本的Excel?(2013具有自定义的measure mdx功能)Excel 2013。我猜总数是在客户端(Excel)计算的,但对于基本度量值,即使是不涉及时间的计算成员(即[度量值]。[销售]-[度量值]。[成本]),只有使用parallelperiod或类似的cm才会产生不正确的结果。我想尝试解决顺序,但我无法在cm定义中使用它,因为定义多维数据集的VisualStudio工具不接受它。好的-那么您正在将此cm添加到多维数据集脚本中-您是否尝试将度量值添加到Excel中?@whytheq我猜您想知道它的最终结果解决这个问题:很高兴你最后到了那里。
SCOPE([Measures].[Previous_Sales]);
    SCOPE([Dim Time].[Calendar].[Day].MEMBERS);
            THIS = ([Measures].[Sales], ParallelPeriod([Dim Time].[Calendar].[Year])) ;
    END SCOPE;
END SCOPE;