Ssas MDX:移动平均计算仅给出(空)结果

Ssas MDX:移动平均计算仅给出(空)结果,ssas,mdx,Ssas,Mdx,我试图在SSAS 2014中使用MDX计算移动平均值,但所有结果都是空的 阅读多个网络参考和博客文章使我认为这应该有效,给出了3个月移动平均值: With MEMBER [Measures].[MA3] AS Avg( [Date].[Calendar Years].[Month].CurrentMember.Lag(2) : [Date].[Calendar Years].[Month], [Measures].[Proj

我试图在SSAS 2014中使用MDX计算移动平均值,但所有结果都是空的

阅读多个网络参考和博客文章使我认为这应该有效,给出了3个月移动平均值:

With
  MEMBER [Measures].[MA3] AS 
    Avg(
         [Date].[Calendar Years].[Month].CurrentMember.Lag(2) 
          : [Date].[Calendar Years].[Month],
         [Measures].[Project Views]
       )

SELECT  { [Measures].[Project Views], [Measures].[MA3] } ON 0,
          [Date].[Calendar Years].[Month]  ON 1
FROM [ProjectAccesses] 
但是,每列中都会显示(null)

我希望使用以下方法,每种情况下的成员数均为3:

  MEMBER  [Measures].[C3] AS 
    Count(
          [Date].[Calendar Years].[Month].CurrentMember.Lag(2) 
             : [Date].[Calendar Years].[Month],
          INCLUDEEMPTY
         )
但同样,没有检测到语法错误,但所有值都是(null),这让我相信月份范围集可能是空的

我已经在这里呆了好几个小时了,已经没有东西可以尝试了

有人能提出可能出现的问题吗;我是MDX的新手,所以可能是我的查询结构错误,或者我的多维数据集配置中存在一些我无法找到的错误


谢谢

我相信你需要改变

": [Date].[Calendar Years].[Month],"


[Date].[Calendar Years].[Month]>应该给出级别,而不是您想要的当前成员

我找到了解决方案。我假设我需要根据我[日历年]层次结构中的一个成员来形成我的集合。但是,如果没有层次结构,下面的代码可以正常工作(尽管我无法解释为什么原始版本没有)


我很惊讶,您不能在整个过程中使用日历年层次结构。我添加了两个额外的诊断措施,以便您可以查看currentmember函数返回的内容:

WITH
  MEMBER [Measures].[MA3] AS 
      AVG(
           [Date].[Calendar Years].CurrentMember.Lag(2) 
             : [Date].[Calendar Years].CurrentMember,
           [Measures].[Project Views]
         )
  MEMBER  [Measures].[C3] AS 
    COUNT(
           [Date].[Calendar Years].CurrentMember.Lag(2) 
             : [Date].[Calendar Years].CurrentMember,
           INCLUDEEMPTY
         )
  MEMBER  [Measures].[Diagn1] AS  
    [Date].[Calendar Years].CurrentMember.member_caption
  MEMBER  [Measures].[Diagn2] AS  
    [Date].[Calendar Years].CurrentMember.Lag(2).member_caption
SELECT  
    { 
      [Measures].[Project Views]
    , [Measures].[MA3] 
    , [Measures].[C3] 
    , [Measures].[Diagn1]
    , [Measures].[Diagn2]
    } ON 0,
    [Date].[Calendar Years].[Month].MEMBERS  ON 1
FROM [ProjectAccesses];

您好@ebayindir,这是我尝试过的事情之一(尽管我对查询建模的示例没有这样做)。不幸的是,添加.CurrentMember不会更改任何内容。这也会起作用-
[Date].[Calendar Years].CurrentMember
@SouravA我添加了mdx作为文档-您可以添加您的投票吗,因为我们需要几个投票来创建标记:@SouravA nice one-我们现在有一个标记和区域来添加内容-现在需要考虑添加内容!!谢谢@whytheq。这将在所有列中给出预期值,Diagn1包含月份名称,Diagn2正确。不起作用的是我原来的[日期][日历年][月份].currentmember。这给了我一个有用的例子,所以我将把它标记为答案。
With
  MEMBER [Measures].[MA3] AS 
      Avg(
           [Date].[Month].CurrentMember.Lag(2) 
             : [Date].[Month].CurrentMember,
           [Measures].[Project Views]
         )
  MEMBER  [Measures].[C3] AS 
    Count(
           [Date].[Month].CurrentMember.Lag(2) 
             : [Date].[Month].CurrentMember,
           INCLUDEEMPTY
         )

SELECT  { [Measures].[Project Views], [Measures].[MA3] , [Measures].[C3] } ON 0,
          [Date].[Calendar Years].[Month]  ON 1
FROM [ProjectAccesses] 
WITH
  MEMBER [Measures].[MA3] AS 
      AVG(
           [Date].[Calendar Years].CurrentMember.Lag(2) 
             : [Date].[Calendar Years].CurrentMember,
           [Measures].[Project Views]
         )
  MEMBER  [Measures].[C3] AS 
    COUNT(
           [Date].[Calendar Years].CurrentMember.Lag(2) 
             : [Date].[Calendar Years].CurrentMember,
           INCLUDEEMPTY
         )
  MEMBER  [Measures].[Diagn1] AS  
    [Date].[Calendar Years].CurrentMember.member_caption
  MEMBER  [Measures].[Diagn2] AS  
    [Date].[Calendar Years].CurrentMember.Lag(2).member_caption
SELECT  
    { 
      [Measures].[Project Views]
    , [Measures].[MA3] 
    , [Measures].[C3] 
    , [Measures].[Diagn1]
    , [Measures].[Diagn2]
    } ON 0,
    [Date].[Calendar Years].[Month].MEMBERS  ON 1
FROM [ProjectAccesses];