您可以显式枚举 MDX 中的列。您不必使用叉积。代替
{ Accounts.Version.Actual, Accounts.Version.Budget }
*
(Date.Calendar.Year_2012 + Date.Calendar.Year_2012.Children)
(这将产生一个“对称报告”),你可以使用
{
(Accounts.Version.Actual, Date.Calendar.Month1_2012),
(Accounts.Version.Actual, Date.Calendar.Month2_2012),
(Accounts.Version.Actual, Date.Calendar.Month3_2012),
(Accounts.Version.Actual, Date.Calendar.Month4_2012),
(Accounts.Version.Actual, Date.Calendar.Month5_2012),
(Accounts.Version.Actual, Date.Calendar.Month6_2012),
(Accounts.Version.Actual, Date.Calendar.Month7_2012),
(Accounts.Version.Actual, Date.Calendar.Month8_2012),
(Accounts.Version.Actual, Date.Calendar.Month9_2012),
(Accounts.Version.Actual, Date.Calendar.Month10_2012),
(Accounts.Version.Actual, Date.Calendar.Month11_2012),
(Accounts.Version.Actual, Date.Calendar.Month12_2012),
(Accounts.Version.Budget, Date.Calendar.Year_2012)
}
(或根据需要调整上面的列列表),或使用任何方式构建您喜欢的列轴集
{ Accounts.Version.Actual } * (Date.Calendar.Month1_2012 : date.Calendar.Month12_2012)
+
{ (Accounts.Version.Budget, Date.Calendar.Year_2012) }
只要轴集的维数保持一致,即集合的所有元组具有相同数量的成员(在这种情况下为两个),并且在集合的元组的每个位置,只有相同层次结构的成员(Accounts.Version
在第一个位置,Date.Calendar
在第二个位置)。
这只是关于MDX。另一个问题是哪些用户界面暴露了 MDX 的哪些可能性。
最后:命名集是 MDX 中的命名集。至少 Analysis Services 没有命名元组的概念。我认为 Essbase MDX 方言有这个。