Ssas MDX:移动平均计算仅给出(空)结果
我试图在SSAS 2014中使用MDX计算移动平均值,但所有结果都是空的 阅读多个网络参考和博客文章使我认为这应该有效,给出了3个月移动平均值: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
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];