MDX显示到目前为止的所有销售额

MDX显示到目前为止的所有销售额,mdx,Mdx,我有一个庞大的现金流表,这意味着收入有+int值,结果有-int值 我已经量了一组钱的总数 我现在不仅要显示每月的金额,还要显示截至本月的所有过去时间的金额,如下所示: Month MoneyAmount Total 1 20 20 2 -10 10 3 5 15 4 -10 5 所以我知道第一部分就像 select [Measures].[Money] on 0, [Da

我有一个庞大的现金流表,这意味着收入有+int值,结果有-int值

我已经量了一组钱的总数

我现在不仅要显示每月的金额,还要显示截至本月的所有过去时间的金额,如下所示:

Month  MoneyAmount  Total
1      20           20
2      -10          10
3      5            15
4     -10           5
所以我知道第一部分就像

select [Measures].[Money] on 0,
[Date].[Month].Members on 1
From MyCube
但是如何添加sum列呢


我考虑过像SUM{NULL:[Date].[Month].CurrentMember},[Measures].[Money]这样的东西,但这不起作用:

在MDX中,总数已经存在了。你不必做复杂的计算就能得到它

但这取决于您的确切层次结构,即如何调用All成员。如果您有一个名为[date].[date]的日期用户层次结构,并且它有一个名为[date].[date].[month]的月份级别,那么该层次结构的所有成员可能会被称为类似于[date].[date].[all]的名称。如果[Month]是日期维度的属性层次结构,则all成员可能称为[Date].[Month].[all]。在后一种情况下,all成员将已经是集合[Date].[Month].Members的第一个成员。当您提出这个问题时,我假设情况并非如此,您使用的是用户层次结构。然后您可以将MDX查询更改为

select [Measures].[Money] on 0,
Union([Date].[Month].Members, { [Date].[Date].[All] }) on 1
From MyCube
请注意,在设计Analysis Services维度时,您可以在维度的属性设置中更改所有成员的名称,因此,如果不知道多维数据集中此设置的详细信息,我无法知道最终名称。所以,您可能必须修改所有成员的名称

您可以在SQLServerManagementStudio中的MDX窗口中找到此名称,如下所示:打开您正在使用的层次结构,然后打开“成员”节点,在该节点下您应该找到“所有成员”。您可以将其拖到MDX语句中,正确的名称将出现在那里。

作为运行总和

您需要一个经过计算的度量,如下所示:

With Member [Measures].[Running Sum] as Sum(  ( [Date].[Months].Members.Item(0) : [Date].[Months].CurrentMember ), [Measures].[Money])
Select [Date].[Months].Members on Rows,
{[Measures].[Money], [Measures].[Running Sum] } on Columns 
From [MyCube]