pentaho CDE中的MDX查询

pentaho CDE中的MDX查询,mdx,pentaho-cde,Mdx,Pentaho Cde,我正在尝试创建一个OLAP选择器,其中包括字段返回,也包括一个包含其他字段总和的字段。如何修改此MDX查询以解决此问题: WITH MEMBER [Measures].[Name] AS [Year].CurrentMember.UniqueName SELECT Filter ( {Descendants([Year].[All Years],[Year].[Year])} ,(NOT IsEmpty([Year].CurrentMemb

我正在尝试创建一个OLAP选择器,其中包括字段返回,也包括一个包含其他字段总和的字段。如何修改此MDX查询以解决此问题:

WITH 
  MEMBER [Measures].[Name] AS 
    [Year].CurrentMember.UniqueName 
SELECT 
  Filter
  (
    {Descendants([Year].[All Years],[Year].[Year])}
   ,(NOT 
      IsEmpty([Year].CurrentMember))
  ) ON ROWS
 ,{[Measures].[Name]} ON COLUMNS
FROM [*My Table*];

我希望我的选择器显示。。。2010、2011、2012、2013、2014和ALL

您应该能够将[ALL]成员添加到您正在行上使用的集合中:

WITH 
  MEMBER [Measures].[Name] AS 
    [Year].CurrentMember.UniqueName 
SELECT 
  {
    [Year].[All Years]
   ,Filter
    (
      {Descendants([Year].[All Years],[Year].[Year])}
     ,(NOT 
        IsEmpty([Year].CurrentMember))
    )
  } ON ROWS
 ,{[Measures].[Name]} ON COLUMNS
FROM [*My Table*];
使用更通用的“所有会员”名称,简化您获得年度会员的方式:

WITH 
  MEMBER [Measures].[Name] AS 
    [Year].CurrentMember.UniqueName 
SELECT 
  {
    [Year].[All]
   ,Filter
    (
      [Year].[Year].MEMBERS
     ,(NOT 
        IsEmpty([Year].CurrentMember))
    )
  } ON ROWS
 ,{[Measures].[Name]} ON COLUMNS
FROM [*My Table*];

我不清楚你的要求。但是,如果希望看到子体函数的输出所产生的所有年份,可以尝试在计算成员中使用GENERATEfunction

WITH MEMBER Measures.[Years] AS
GENERATE
    (
      Filter
      (
        {Descendants([Year].[All Years],[Year].[Year])}
       ,(NOT 
          IsEmpty([Year].CurrentMember))
      )
      ,
     [Year].[Year].currentmember.member_value 
      , 
     " "
    )

我希望看到olap选择器中存在的年份,例如2010年、2011年、2012年、2013年、2014年,这是其他年份的总和。