Ssas 如果parrent在MDX的另一年中缺席,则家长不包括孩子

Ssas 如果parrent在MDX的另一年中缺席,则家长不包括孩子,ssas,mdx,Ssas,Mdx,我有数据 parentid geo CustomerId Sales Year 171 A 171 10 2014 171 A 172 20 2015 171 A 172 30 2014 171 A 173 40 2014 质疑, SELECT NON EMPTY { [Measures].[Sales] } ON COLUMNS, NON EMPTY { ([DIMCustomer

我有数据

parentid    geo     CustomerId  Sales   Year
171     A   171     10  2014
171     A   172     20  2015
171     A   172     30  2014
171     A   173     40  2014
质疑,

 SELECT NON EMPTY { [Measures].[Sales] }
 ON COLUMNS, NON EMPTY { ([DIMCustomer].[ParentGeoCode].[ParentGeolCode].ALLMEMBERS ) }
  DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME

  ON ROWS FROM
  ( SELECT ( { [DIMCustomer].[ParentSkId].[Level 02].allmembers } )

  ON COLUMNS FROM ( SELECT ( { [DIMCustomer].[HierarchyCategory].&[Hierarchy] } )
  ON COLUMNS FROM ( SELECT ( { [Year].[Year].&[2015], [Year].[Year].&[2014] } )
  ON COLUMNS FROM [Cube])))

  WHERE ( [Year].[Year].CurrentMember, [DIMCustomer].[HierarchyCategory].&[Hierarchy],
  [DIMCustomer].[ParentSkId].[Level 02].allmembers)

输出-来自此查询的是10,但根据要求,如果我选择2014年和2015年,我需要100。请尝试从您的
WHERE
子句中提取
[year].[year].[year].[All].[code>

顺便说一下: 1.不需要嵌套子选择,但如果使用其他轴,则子选择的可读性更高。 2.无需在子选择中包含任何类似的
.allMemeber
函数
[DIMCustomer].[ParentSkId].[Level 02]。所有成员

这是简化的脚本:

SELECT 
 NON EMPTY { [Measures].[Sales] } ON 0, 
 NON EMPTY { ([DIMCustomer].[ParentGeoCode].[ParentGeolCode].ALLMEMBERS ) } ON 1
FROM
  ( 
   SELECT   
       { [DIMCustomer].[HierarchyCategory].&[Hierarchy] }   ON 0, 
       { [Year].[Year].&[2015], [Year].[Year].&[2014] }     ON 1 
   FROM [Cube] 
  )
 WHERE 
   (
     [Year].[Year].[All],
     [DIMCustomer].[HierarchyCategory].&[Hierarchy],
     [DIMCustomer].[ParentSkId].[Level 02].allmembers
   );