【问题标题】:MDX crossjoin with 5 dimensions具有 5 个维度的 MDX 交叉连接
【发布时间】:2012-06-05 11:19:29
【问题描述】:

假设我们有以下维度

  • 日期
  • 承包商
  • 颜色
  • 尺寸

以及一组 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 之间有什么区别?

【问题讨论】:

    标签: ssas mdx cube cross-join


    【解决方案1】:

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

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

    在 ROWS 上的交叉连接中?

    所有成员与成员;这是doc; allmembers 包括计算。会员;你有任何昂贵的计算吗?会员?

    [Dim DATE].[MOIS NOM].[MOIS NOM].AllMembers 中有多少成员?学期,学期?

    【讨论】:

    • 谢谢! 50年,每2个学期,每年4个学期,每年12个月
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-08
    • 2017-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多