Ssas 每年最后一个月的MDX回报

Ssas 每年最后一个月的MDX回报,ssas,mdx,Ssas,Mdx,我正在尝试创建一个集合以返回上个月的值,该值包含每年的数据。 例如,如果我把年份放在行上 20112012201312014将全部包含12月份的数据。 2015年将包含2015年6月的数据 除了最近一个月的归来,我似乎什么也得不到。我想这是因为我的尾部声明,但我不知道如何修复它 CREATE SET [Last Statement Month] AS Tail( nonempty( Descendants( [Date].[Calendar].curr

我正在尝试创建一个集合以返回上个月的值,该值包含每年的数据。
例如,如果我把年份放在行上 20112012201312014将全部包含12月份的数据。 2015年将包含2015年6月的数据

除了最近一个月的归来,我似乎什么也得不到。我想这是因为我的尾部声明,但我不知道如何修复它

CREATE SET [Last Statement Month] AS
  Tail(
   nonempty(
      Descendants(
           [Date].[Calendar].currentmember
          ,[Date].[Calendar].[Month]
      ),
      [Measures].[Sale Amount]
   ), 1);
我还试图得到每个月的最后一天,但当我把它与年份一起使用时,什么都没有显示

GENERATE(
   { 
     Openingperiod([Date].[Calendar].[Month]):ClosingPeriod([Date].[Calendar].Month)
   },
   {[Date].[Calendar].CurrentMember.Lastchild}
);

我目前不在AdvWrks,因此无法测试。以下内容有用吗

CREATE SET [Last Statement Month] AS
  TAIL(
    NONEMPTY(
      EXISTING ([Date].[Calendar].[Month].MEMBERS)
      ,[Measures].[Sale Amount]
    )
  );
(如果这种方法有效)如果最后执行
现有的
,性能显然会更好:

CREATE SET [Last Statement Month] AS
  TAIL(
    EXISTING
    NONEMPTY(
       [Date].[Calendar].[Month].MEMBERS
      ,[Measures].[Sale Amount]
    )
  );  
看来上述方法行不通。我在下面添加了一个备选方案,这可能更符合您的要求:

WITH 
  DYNAMIC SET  [Last Statement Month] AS 
    Tail
    (
      NonEmpty
      (
        (EXISTING 
          [Date].[Calendar].[Month].MEMBERS)
       ,[Measures].[Internet Sales Amount]
      )
    ) 
  MEMBER [Measures].[x] AS 
    [Last Statement Month].Item(0).Item(0).Member_Caption 
  MEMBER [Measures].[Lst mth with data] AS  `<<<<maybe something like this helps?
    Max
    (
      (EXISTING 
        [Date].[Calendar].[Month].MEMBERS)
     ,IIF
      (
        [Measures].[Internet Sales Amount] = 0
       ,NULL
       /*,[Date].[Calendar].CurrentMember.Member_Caption*/ //<<WRONG PROPERTY USED
       ,[Date].[Calendar].CurrentMember.MemberValue        //<<should help!!
      )
    ) 
SELECT 
  {[Measures].[Lst mth with data],[Measures].[x]} ON 0
 ,[Date].[Calendar].[Calendar Year] ON 1
FROM [Adventure Works];
与
动态设置[上一个报表月]为
尾巴
(
非空
(
(现有)
[日期][日历][月份].成员)
,[措施][互联网销售额]
)
) 
成员[措施][x]作为
[Last Statement Month]。项目(0)。项目(0)。成员标题

成员[Measures]。[Lst mth with data]AS`(补充)有趣的问题是返回9月的最大日期是多少,因为它是按字母顺序排列的?在我的多维数据集中,我每年也会返回多维数据集中的9月。我确实有所有月份的数据,所以我认为它应该返回到12月。看起来我需要将valueColumn属性添加到多维数据集中,但我认为这会起作用。此MDX不在Mondrian上运行。有人能提供一个在蒙德里安(Pentaho)上运行的例子吗?谢谢。@别担心这个问题会指定SSA。现有功能未在Mondrian中实现。