Ssas 具有5个尺寸的MDX交叉连接

Ssas 具有5个尺寸的MDX交叉连接,ssas,mdx,cube,cross-join,Ssas,Mdx,Cube,Cross Join,假设我们有以下维度 日期 承包人 颜色 大小 一套6种测量方法,我们希望得到给定年份中每个学期、三个月、月份、承包商、颜色和尺寸的6种测量方法 以下是我的MDX查询: SELECT { ... the 6 measures ... } ON COLUMNS, { ( [Dim DATE].[year].[year].AllMembers * [Dim DATE

假设我们有以下维度

  • 日期
  • 承包人
  • 颜色
  • 大小
一套6种测量方法,我们希望得到给定年份中每个学期、三个月、月份、承包商、颜色和尺寸的6种测量方法

以下是我的MDX查询:

SELECT 
   { 
         ... the 6 measures ... 
   } ON COLUMNS, 
    { 
          (
                [Dim DATE].[year].[year].AllMembers * 
                [Dim DATE].[SEMESTRE NOM].[SEMESTRE NOM].AllMembers * 
                [Dim DATE].[TRIMESTRE NOM].[TRIMESTRE NOM].AllMembers * 
                [Dim DATE].[MOIS NOM].[MOIS NOM].AllMembers *
                [Dim CONTRACTOR].[Name CONTRACTOR].AllMembers *
                [Dim COLOR].[Name COLOR].AllMembers *
                [Dim SIZE].[Name SIZE].AllMembers 
         ) 
   } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS 

 FROM   ( 
   SELECT ( { StrToSet( "[Dim DATE].[year].[year].&[" + @Year + "]" , CONSTRAINED ) }      

   ) ON COLUMNS 
FROM [TheCube]

这是非常缓慢(超过20分钟),只有6个承包商,6种颜色,18种尺寸。。。
.AllMembers
.Members
之间的区别是什么?

根据层次结构中的实际年数,您可以使用交叉连接创建一个相当大的集合。正如icCube在评论中提到的,为什么不使用:

StrToSet( "[Dim DATE].[year].[year].&[" + @Year + "]" , CONSTRAINED )
在两排的交叉路口

所有成员vs成员;这里有一个;所有成员包括计算成员;你们有昂贵的计算会员吗


您在[Dim DATE].[MOIS NOM].[MOIS NOM]中有多少成员。所有成员?trimestre,semestre?

根据层次结构中的实际年数,您可以使用交叉连接创建一个相当大的集合。正如icCube在评论中提到的,为什么不使用:

StrToSet( "[Dim DATE].[year].[year].&[" + @Year + "]" , CONSTRAINED )
在两排的交叉路口

所有成员vs成员;这里有一个;所有成员包括计算成员;你们有昂贵的计算会员吗


您在[Dim DATE].[MOIS NOM].[MOIS NOM]中有多少成员。所有成员?三月份,三月份?

谢谢!50年,每个月2次,每年4次,每年12个月谢谢!50年,每个季度2次,每年4次,每年12个月