我有一个巨大的现金流表,这意味着收入的+ int值和结果的-int值。
我有MeasureGroup用于汇总金额。
我现在不仅要显示每月的金额,还要显示当前所有过去时间的总和,如下所示:
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这样的东西({NULL:[Date]。[Month] .CurrentMember},[Measures]。[Money])但是它也没有用:(
答案 0 :(得分:0)
在MDX中,总数已经存在。你不必进行复杂的计算就可以得到它。
但这取决于您确切的层次结构如何调用All
成员。如果您有一个名为[Date].[Date]
的日期用户层次结构,并且它具有名为[Date].[Date].[Month]
的月份级别,那么层次结构的所有成员可能会被称为[Date].[Date].[All]
。如果[Month]
是日期维度的属性层次结构,那么"所有成员"可能会被称为[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维度时,您可以在维度的属性设置中更改“所有”成员的名称,因此在不知道多维数据集中此设置的详细信息的情况下,我无法知道确定的名称。所以你可能需要调整所有成员的名字。
您可以在MDX窗口中的SQL Server Management Studio中找到此名称,如下所示:打开您正在使用的层次结构,然后打开"成员"节点,在其下面你应该找到"所有会员"。您可以将其拖到MDX语句中,并在那里显示正确的名称。
答案 1 :(得分:0)
如同在跑步中一样?
您需要一个计算出的度量,如下所示:
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]