MDX:当来自同一层次结构的成员已经在行或列中时,如何创建WHERE?

时间:2014-12-10 14:09:12

标签: mdx mondrian

我有一个名为Date的维度,其中包含一个层次结构(默认)。

从那时起,我希望在行上使用月份,并在Year = 2014上过滤。

这不起作用:

SELECT 
  [Date].[Month].Members ON 0,
  Measures.Amount ON 1
FROM [GL]
WHERE [Date].[Year].[2014]

我尝试使用FILTER,但是元组也没有用。在SSAS(我使用蒙德里安)我会使用子查询,但蒙德里安没有支持。

有谁知道如何做到这一点?

1 个答案:

答案 0 :(得分:1)

尝试DESCENDANTS功能:

SELECT 
  DESCENDANTS(
    [Date].[Year].[2014] //<<this should be a member
    ,[Date].[Month]      //this should be a level name
  ) ON 0,
  Measures.Amount ON 1
FROM [GL];

它应该在指定的级别(Month)为您指定成员(2014)的后代。如果您将月份换成日期级别,那么您应该获得2014年的所有日期(1月1日,1月2日......)。