以下脚本给出了我想要的结果。
当我将自定义成员VALUE
和VALUE_MTD
添加到层次结构[Customer].[Country]
时,感觉就像黑客一样。我已经任意选择了这个层次结构 - 只是没有使用[Measures]
或[Date].[Calendar]
,因为它们已经在使用中。
是否有更标准的方法来返回完全相同的单元格集?
WITH
MEMBER [Customer].[Country].[VALUE] AS
Aggregate([Customer].[Country].[(All)].MEMBERS)
MEMBER [Customer].[Country].[VALUE_MTD] AS
Aggregate
(
PeriodsToDate
(
[Date].[Calendar].[Month]
,[Date].[Calendar].CurrentMember
)
,[Customer].[Country].[VALUE]
)
SELECT
{
[Customer].[Country].[VALUE]
,[Customer].[Country].[VALUE_MTD]
} ON 0
,NON EMPTY
{
[Measures].[Internet Sales Amount]
,[Measures].[Internet Order Quantity]
}
*
Descendants
(
{
[Date].[Calendar].[Month].&[2007]&[12]
:
[Date].[Calendar].[Month].&[2008]&[01]
}
,[Date].[Calendar].[Date]
) ON 1
FROM [Adventure Works];
答案 0 :(得分:1)
标准方法称为实用程序维度。如果您使用Google这个术语,您会发现有关此方法的几种说明。 “实用程序维度”是指不引用任何数据的实用程序维度,但只是添加到多维数据集中,以便能够将它们与所有其他维度交叉连接以进行计算。你可以有一个或多个。
因此,在大多数情况下,维度中没有任何内容。它仅用于计算成员。 (根据实现,如果要为它们提供一些属性,可以在物理上定义属性成员。但是,只有默认成员在事实表的星型模式中引用。然后覆盖属性成员值。在计算脚本中。)
典型的应用是时间计算,如年初至今,MTD,MAT(移动年度总计,即在选定日期结束的全年数据),或者比较增长与前一时期的比较。