Une requête MDX contenant une fonction d’agrégation renvoie une erreur pour les valeurs de cellule dans SQL Server Analysis Services

Cet article décrit un problème qui se produit si l’ensemble de la Aggregate fonction contient un membre calculé.

Version du produit d’origine :   SQL Server
Numéro de la base de connaissances initiale :   942981

Symptômes

Vous avez une requête MDX (Multidimensional Expressions) qui utilise la Aggregate fonction. Le jeu qui est spécifié dans la fonction Aggregate contient un membre calculé. Lorsque vous exécutez la requête MDX sur une instance de Microsoft SQL Server Analysis Services, la requête renvoie #Error pour les valeurs de cellules. Si vous cliquez sur une cellule, vous recevez le message d’erreur suivant dans la boîte de dialogue Propriétés de la cellule :

Un ensemble ne pouvant pas contenir de membres calculés a été détecté

Notes

Vous recevez le message d’erreur dans la colonne valeur de la VALUE propriété et de la FORMATTED_VALUE propriété.

Cause

Ce problème se produit car un membre calculé contient la Aggregate fonction, et cette fonction a un ensemble de membres qui ne sont pas regroupables.

Par exemple, considérez la requête MDX mentionnée dans la section étapes pour reproduire la question. Dans la base de données [Adventure Works DW] Sample, [Scenario]. [Scenario] le membre n’est pas regroupable. La propriété IsAggregatable de cet attribut dimension est définie sur false. Si vous exécutez cette requête MDX, vous recevrez le message d’erreur mentionné dans la section symptômes .

Étapes à suivre pour reproduire le problème

  1. Dans SQL Server Business Intelligence Development Studio, ouvrez le projet exemple Adventure Works DW Enterprise Edition.

    Notes

    L’exemple de projet Adventure Works DW Enterprise Edition est inclus dans le projet de base de données Analysis Services. Pour télécharger le projet de base de données Analysis Services, voir AdventureWorks Sample Databases.

  2. Déployez l’exemple de projet sur une instance de SQL Server Analysis Services.

  3. Ouvrez SQL Server Management Studio, puis connectez-vous à l’instance d’Analysis Services.

  4. Cliquez sur Nouvelle requête.

  5. Dans la fenêtre de requête, exécutez la requête MDX suivante :

    WITH MEMBER
    [Scenario].[Scenario].[MyMember]
    AS
    AGGREGATE(
    {[Scenario].[Scenario].&[1],
    [Scenario].[Scenario].&[2],
    [Scenario].[Scenario].&[3],
    [Scenario].[Scenario].[Budget Variance]
    })
    
    SELECT
    {[Measures].[Amount]} ON AXIS(0)
    FROM
    [Adventure Works]
    WHERE [Scenario].[Scenario].[MyMember]