2010-10-20 4 views
0

J'ai écrit cette demande MDX assez simple pour obtenir le rang par le nombre de ventes de chaque sexe:MDX demande de Rank retour des résultats inattendus

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] 

Le problème est que le résultat est mauvais, je sais M a plus de ventes que 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 

Si je « pays » au lieu de « genre », même problème: le rang est donnée selon la ordre alphabétique, au lieu de basé sur le nombre de ventes. (ie: tous les pays sont listés par ordre alphabétique, avec rang 1,2,3,4, ...)

Comment puis-je corriger la demande pour afficher correctement le classement des ventes de chaque sexe?

Répondre

0

OK, j'ai trouvé la solution:

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] 

Désolé pour le bruit, je l'espère, cela pourrait aider quelqu'un :-)

Questions connexes