我正在研究SSMS 2014中的一个查询,我需要[度量]。[Percent Unique App Users]按月计算,以便我可以动态计算月份的增加百分比。我最好喜欢从上个月到上个月的比较开始,这最终会最终以每个月的报告形式运行(因此需要它是动态的)。MDX计算每月会员
有或没有我的DATE成员时,[CurrentMonthUniqueUsers]和[LastMonthUniqueUsers]的计数保持不变(以示例显示)。另外,如果没有我的WHERE语句,我只会得到非会员行的结果。
WITH
MEMBER [LastMonthUniqueUsers] as SUM({[Date].[Calendar].CurrentMember.Lag(2)},[Measures].[App Unique Users Loggedin])
MEMBER [CurrentMonthUniqueUsers] as SUM({[Date].[Calendar].CurrentMember.Lag(1)},[Measures].[App Unique Users Loggedin])
//
MEMBER [Measures].[Percent Unique App Users] AS ([CurrentMonthUniqueUsers])/([LastMonthUniqueUsers]), FORMAT_STRING = "Percent"
//
MEMBER [CurrentDate] As Now()
//
SELECT
non empty[Project].[Client Name].children ON 0,
non empty{[Measures].[Percent Unique App Users],
[CurrentMonthUniqueUsers],
[LastMonthUniqueUsers],
[Measures].[App Logins],
[Measures].[App Unique Users Loggedin]} ON 1
FROM
[OpsViewWarehouse]
WHERE
[Date].[Year].[2017]
下面的图片是我得到的结果。登录次数和唯一登录次数始终保持不变,并且不会受到任何日期的过滤。
我新的MDX,所以任何帮助将不胜感激!
编辑(2017年5月22日):这是查询与我whyTH提供的答案一起工作。请注意,它不是动态的,因为我必须在列上指定日期(201705)。
WITH
MEMBER [2MonthsPriorUniqueUsers] AS Sum({[Date].[Calendar Year Month].CurrentMember.Lag(2)},[Measures].[App Unique Users Loggedin])
MEMBER [1MonthPriorUniqueUsers] AS Sum({[Date].[Calendar Year Month].CurrentMember.Lag(1)},[Measures].[App Unique Users Loggedin])
MEMBER [1MonthPriorTotalAppLogins] AS Sum({[Date].[Calendar Year Month].CurrentMember.Lag(1)},[Measures].[App Logins])
MEMBER [Measures].[PercentUniqueIncreaseMoM] AS ([1MonthPriorUniqueUsers]/[2MonthsPriorUniqueUsers])-1,FORMAT_STRING = "Percent"
SELECT
NON EMPTY
{[Date].[Calendar Year Month].[201705]}
* [Project].[Client Name].members ON 0,
NON EMPTY
{
[Measures].[PercentUniqueIncreaseMoM]
,[1MonthPriorUniqueUsers]
,[2MonthsPriorUniqueUsers]
,[1MonthPriorTotalAppLogins]
} ON 1
FROM [OpsViewWarehouse]
[Date]。[Year]。[2017] - > [日期]。[日历]。[2017]可能会解决一个问题。 –