MDX显示到目前为止的所有销售额
我有一个庞大的现金流表,这意味着收入有+int值,结果有-int值 我已经量了一组钱的总数 我现在不仅要显示每月的金额,还要显示截至本月的所有过去时间的金额,如下所示: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
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]