2010-10-20 42 views
0

我寫了這個相當簡單的MDX請求得到等級由不同性別的銷售數:MDX等級要求返回意想不到的結果

WITH MEMBER [Measures].[rank] AS RANK(
     [Gender].CurrentMember, 
     Order(
     [Gender].Members, 
     [Measures].[salescount], 
     BDESC 
    ), 
     [Measures].[salescount] 
    ) 
SELECT [Gender].Members ON COLUMNS, 
[Measures].[rank] ON ROWS 
FROM [SalesAnalysis] 

問題是,結果是錯的,我知道,中號已除F更多的銷售:

Axis #0: 
    {} 
Axis #1: 
    {[Measures].[rank]} 
Axis #2: 
    {[Gender].[All Genders]} 
    {[Gender].[F]} 
    {[Gender].[M]} 
Row #0: 1 
Row #1: 2 
Row #2: 3 

如果我使用「國家」,而不是「性別」,同樣的問題:排名根據給出字母順序,而不是基於銷售數量。 (即:所有國家按字母順序排列,排名1,2,3,4,...)

如何解決請求以正確顯示每個性別的salescount排名?

回答

0

OK,我已經找到了解決辦法:

WITH MEMBER [Measures].[rank] AS RANK(
     [Reseller].CurrentMember, 
     Order(
     [Reseller].Members, 
     [Measures].[salescount], 
     BDESC 
    ), 
     [Measures].[salescount] 
    ) 
SELECT Order(
     [Reseller].Members, 
     [Measures].[salescount], 
     BDESC 
    ).Item([theShopWhoseRankIWant]) ON COLUMNS, 
[Measures].[rank] ON ROWS 
FROM [SalesAnalysis] 

很抱歉的噪音,我希望這可以幫助別人:-)