2015-12-16 94 views
0

我對mdx非常陌生,並且即將學習它。我現在遇到了麻煩,因爲我想在兩個日期之間的每個工作日獲得平均金額。 例如十二月十一月1日1日之間有4個星期一,所以一般會[措施]。[金額]/4,但我真的無法弄清楚如何表達MDX如何使用MDX平均功能?

with member [Measures].[Avg] as 
        avg([Dim Date].[Day Of Week].[Day Of Week] 
        , [Measures].[amount]) 

SELECT NON EMPTY { ([Measures].[Avg]), ([Measures].[Amount])} ON COLUMNS, 
NON EMPTY { ([Dim Date].[Day Of Week].[Day Of Week].ALLMEMBERS * [Dim Date].[Date Int].[Date Int].ALLMEMBERS)} 
    ON ROWS FROM (SELECT ({ [Dim Client].[Common Client UID].&[{xx}] }) 
         ON COLUMNS FROM (SELECT ([Dim Date].[Date Int].&[20151115] : [Dim Date].[Date Int].&[20151215]) 
         ON COLUMNS FROM [ff])) 
         WHERE ([Dim Client].[Common Client UID].&[{xx}]) 
這個簡單的功能

這個查詢給我每個工作日和所有的日期綁定到特定的工作日,並且每個日期都有一個總數。

enter image description here 像你可以看到我的平均值是一樣的總量。我認爲我可以選擇兩個日期之間的所有星期幾,例如找出有多少星期一,然後用數量除以數字。但我無法弄清楚。

with member [Measures].[avg] as 
        avg([Dim Date].[Day Of Week].[Day Of Week], [Measures].[Amount]) 



SELECT NON EMPTY {[Measures].[avg], [Measures].[Amount]} ON COLUMNS, NON EMPTY { ([Dim Date].[Day Of Week].[Day Of Week].ALLMEMBERS )} 
    ON ROWS FROM (SELECT ({ [Dim Client].[Common Client UID].&[{xx}] }) 
         ON COLUMNS FROM (SELECT ([Dim Date].[Date Int].&[20151115] : [Dim Date].[Date Int].&[20151215]) 
         ON COLUMNS FROM [ff])) 
         WHERE ([Dim Client].[Common Client UID].&[{xx}]) 

結果:

enter image description here

我如何解決這個問題?

回答

1

你真正想要的是在對應於工作日在指定日期範圍內的日期的平均量。

你可以只移動日期範圍計算成員的定義,這樣,當特定工作日值進行評估,日期範圍也被認爲。

with member [Measures].[Avg] as 
avg 
    (
    [Dim Date].[Day Of Week].CURRENTMEMBER * {[Dim Date].[Date Int].&[20151115] : [Dim Date].[Date Int].&[20151215]} 
    ,[Measures].[amount] 
) 

SELECT NON EMPTY { ([Measures].[Avg]), ([Measures].[Amount])} ON COLUMNS, 
NON EMPTY [Dim Date].[Day Of Week].[Day Of Week].ALLMEMBERS * [Dim Date].[Date Int].[Date Int].ALLMEMBERS ON ROWS 
FROM [ff] 
WHERE ([Dim Client].[Common Client UID].&[{xx}]) 
+0

這是有道理的。但如果我運行查詢我得到:CellOrdinal VALUE \t#錯誤查詢(4,5)CurrentMember函數預計爲1個參數層次表達。成員表達式被使用。 FORMATTED_VALUE \t #Error Query(4,5)CURRENTMEMBER函數需要1參數的層次結構表達式。成員表達式被使用。 – Timsen

+0

哎呀,現在請嘗試 – SouravA

+0

查詢現在可以執行,但沒有結果。 – Timsen