這一直困擾着我,我不確定爲什麼這麼難。 我有一個測量值,直到某個時間點有空值,然後開始有值。我想獲得每月平均值,但僅限於那些實際上有非空值的月份。我也希望是固定我的時間範圍,查詢不管哪個月份有值(例如,在整個一年)MDX用月份的非空測量值累計數月
這裏是MDX的一個變化,我試圖:
WITH
MEMBER Measures.MonthsWithSales AS
(IIF(IsEmpty(([Time].[Month].CurrentMember,[Measures].[ProductsSold])), 0, [Measures].[MonthCount]))
MEMBER Measures.AvgProductsSold AS
[Measures].[ProductsSold] /Measures.MonthsWithSales
SELECT
{
[Measures].[ProductsSold], [Measures].[MonthCount],
[Measures].[MonthsWithSales], [Measures].[AvgProductsSold]
} ON 0,
[Time].[Month].Members ON 1
FROM MyCube
WHERE [Time].[Year].&[2010-01-01T00:00:00]
返回像這樣:
ProductsSold MonthCount MonthsWithSales AvgProductsSold
All 1644 12 **12** **137**
2010-01-01 00:00:00.000 (null) 1 0 (null)
2010-02-01 00:00:00.000 (null) 1 0 (null)
2010-03-01 00:00:00.000 (null) 1 0 (null)
2010-04-01 00:00:00.000 (null) 1 0 (null)
2010-05-01 00:00:00.000 (null) 1 0 (null)
2010-06-01 00:00:00.000 234 1 1 234
2010-07-01 00:00:00.000 237 1 1 237
2010-08-01 00:00:00.000 236 1 1 236
2010-09-01 00:00:00.000 232 1 1 232
2010-10-01 00:00:00.000 232 1 1 232
2010-11-01 00:00:00.000 233 1 1 233
2010-12-01 00:00:00.000 240 1 1 240
問題出在ALL行上。 我期望MonthsWithSales
跨越年收益7不是12 和AvgProductsSold
(每月銷售額)爲234.86不是137
我意識到,它沒有做我想要的東西,因爲它使用的MonthCount
在ALL水平。但我不知道如何「陷入」「每月維度」,只在相關月份計算「全部」時總結MonthCount
。
你能告訴我們月份層次結構的層次是什麼? – Benoit