我正在研究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]可能會解決一個問題。 –