Partager via


Instruction CREATE MEMBER (MDX)

Mis à jour : 12 décembre 2006

Crée un membre calculé.

Syntaxe

CREATE [ SESSION ] [HIDDDEN] [ CALCULATED ] MEMBER CURRENTCUBE | Cube_Name.Member_Name 
      AS MDX_Expression
      [,Property_Name = Property_Value, ...n]
......[,SCOPE_ISOLATION = CUBE]

Arguments

  • Member_Name
    Expression de chaîne valide qui spécifie le nom d'un membre. Spécifiez un nom complet pour créer un membre au sein d'une dimension autre que la dimension Mesures. Si vous ne fournissez pas un nom de membre complet, le membre sera créé dans la dimension Mesures.
  • MDX_Expression
    Expression MDX (Multidimensional Expressions) valide.
  • Property_Name
    Chaîne valide qui précise le nom d'une propriété de membre calculé.
  • Property_Value
    Expression scalaire valide qui définit la valeur de la propriété de membre calculé.

Notes

L'instruction CREATE MEMBER définit les membres calculés disponibles tout au long de la session, et qui peuvent par conséquent être utilisés dans plusieurs requêtes au cours de la session. Pour plus d'informations, consultez Création de membres calculés au niveau de la session (MDX).

Vous pouvez également définir un membre calculé qui ne doit être utilisé que par une requête unique. Pour définir un membre calculé limité à une seule requête, utilisez la clause WITH de l'instruction SELECT. Pour plus d'informations, consultez Création de membres calculés d'étendue de requête (MDX).

Property_Name peut faire référence à des propriétés de membres calculés standard ou facultatives. Les propriétés de membre standard sont répertoriées plus loin dans cette rubrique. Les membres calculés créés à l'aide de CREATE MEMBER sans valeur SESSION ont une portée limitée à la session. En outre, les chaînes contenues dans les définitions de membre calculé sont délimitées par des guillemets doubles. Ce comportement diffère de celui de la méthode définie par OLE DB, qui spécifie que les chaînes doivent être délimitées par des guillemets simples.

La spécification d'un cube autre que celui actuellement connecté entraîne une erreur. Par conséquent, vous devez utiliser CURRENTCUBE plutôt que le nom d'un cube pour désigner le cube actuel.

Pour de plus amples informations sur les propriétés de membre définies par OLE DB, reportez-vous à la documentation qui l'accompagne.

Propriétés standard

Chaque membre calculé possède un jeu de propriétés par défaut. Lorsqu'une application cliente est connectée à Microsoft SQL Server 2005 Analysis Services (SSAS), les propriétés par défaut sont prises en charge ou peuvent l'être, selon le choix de l'administrateur.

Des propriétés de membre supplémentaires peuvent être disponibles, selon la définition du cube. Les propriétés suivantes représentent des informations relatives au niveau de dimension dans le cube.

Identificateur de propriété Signification

SOLVE_ORDER

Spécifie l'ordre dans lequel le membre calculé sera résolu si un membre calculé fait référence à un autre membre calculé (c'est-à-dire à l'intersection entre les membres calculés).

FORMAT_STRING

Spécifie une chaîne de format de style Microsoft Office que l'application cliente peut utiliser lors de l'affichage de valeurs de cellule.

VISIBLE

Détermine si le membre calculé est visible dans un jeu de lignes de schéma. Les membres calculés visibles peuvent être ajoutés à un jeu à l'aide de la fonction AddCalculatedMembers. Une valeur autre que zéro indique que le membre calculé est visible. La valeur par défaut de cette propriété est Visible.

Les membres calculés qui ne sont pas visibles (possédant la valeur zéro) sont généralement utilisés comme étapes intermédiaires dans des membres calculés plus complexes. Ces membres calculés peuvent également être référencés par d'autres types de membres, tels que des mesures.

NON_EMPTY_BEHAVIOR

Spécifie la mesure ou le jeu permettant de déterminer le comportement des membres calculés lors de la résolution des cellules vides.

Portée

Un membre calculé peut se produire au s'in d'une des portées répertoriées dans le tableau suivant.

  • Portée de la requête
    La visibilité et la durée de vie du membre calculé sont limitées à la requête. Le membre calculé est défini dans une requête particulière. La portée de la requête remplace la portée de la session. Pour plus d'informations, consultez Création de membres calculés d'étendue de requête (MDX).
  • Portée de la session
    La visibilité et la durée de vie du membre calculé sont limitées à la session dans laquelle il a été créé. (La durée de vie est inférieure à la durée de la session si une instruction DROP MEMBER est émise sur le membre calculé.) L'instruction CREATE MEMBER crée un membre calculé limité à la session.

Isolement de la portée

Dans SQL Server 2005 Analysis Services, lorsqu'un script MDX (Multidimensional Expressions) de cube contient des membres calculés, les membres calculés sont par défaut résolus avant que les calculs au niveau de la session soient résolus et avant que des calculs définis par requête soient résolus. Cela diffère du comportement de SQL Server 2000 Analysis Services, où l'ordre de résolution peut être utilisé explicitement pour insérer un calcul au niveau de la session ou défini par requête entre deux calculs au niveau du cube. Cette différence de comportement peut être à l'origine du fait que des membres calculés au niveau de la session ne retournent pas les résultats souhaités dans SQL Server 2005 Analysis Services.

ms144787.note(fr-fr,SQL.90).gifRemarque :
Dans certains scénarios, la fonction Aggregate (MDX) et la fonction VisualTotals (MDX) ne présentent pas ce comportement.

Le comportement dans SQL Server 2005 Analysis Services permet aux applications clientes génériques de travailler avec des cubes qui contiennent des calculs complexes, sans avoir à prendre en compte l'implémentation spécifique des calculs. Toutefois, dans certains scénarios, vous pouvez souhaiter calculer des membres au niveau de la session ou de la requête avant certains calculs dans le cube, et ni la fonction Aggregate, ni la fonction VisualTotals ne peuvent être appliquées. SQL Server 2000 Analysis Services permet ce comportement par le biais d'un paramétrage rigoureux de la propriété SOLVE_ORDER sur les membres calculés au niveau du cube et au niveau de la session ou de la requête. Pour permettre le même comportement dans SQL Server 2005 Analysis Services, utilisez la propriété de calcul SCOPE_ISOLATION.

ms144787.note(fr-fr,SQL.90).gifRemarque :
La propriété de calcul SCOPE_ISOLATION est nouvelle dans SQL Server 2005 Analysis Services Service Pack 2 (SP2).

Exemple

Le script ci-dessous est un exemple de scénario dans lequel la propriété de calcul SCOPE_ISOLATION est requise pour obtenir le résultat correct.

Script MDX du cube :

CREATE MEMBER CURRENTCUBE.Measures.ProfitRatio AS 'Measures.[Store Sales]/Measures.[Store Cost]', SOLVE_ORDER = 10

Requête MDX :

WITH MEMBER [Customer].[Customers].[USA]. USAWithoutWA AS
[Customer].[Customers].[Country].&[USA] - [Customer].[Customers].[State Province.&[WA], SOLVE_ORDER=5
SELECT {USAWithoutWA} ON 0 FROM SALES
WHERE ProfitRatio

Le résultat souhaité de la requête précédente est le pourcentage des ventes pour les USA sans WA, pour stocker le coût pour les USA sans WA. La requête précédente retourne le résultat souhaité dans SQL Server 2000 Analysis Services, mais elle ne retourne pas le résultat souhaité dans SQL Server 2005 Analysis Services. Dans SQL Server 2005 Analysis Services, elle retourne le pourcentage des USA moins le pourcentage de WA, ce qui représente un résultat dénué de sens. Pour obtenir le résultat souhaité, vous pouvez utiliser la propriété de calcul SCOPE_ISOLATION.

Requête MDX utilisant la propriété de calcul SCOPE_ISOLATION :

WITH MEMBER [Customer].[Customers].[USA]. USAWithoutWA AS
[Customer].[Customers].[Country].&[USA] - [Customer].[Customers].[State Province.&[WA], SOLVE_ORDER=5
,SCOPE_ISOLATION=CUBE
SELECT {USAWithoutWA} ON 0 FROM SALES
WHERE ProfitRatio

Voir aussi

Autres ressources

Instructions MDX de définition de données (MDX)

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

17 juillet 2006

Contenu modifié :
  • Mise à jour du contenu reflétant les fonctionnalités et le fonctionnement de SQL Server 2005 Analysis Services.

12 décembre 2006

Contenu modifié :
  • Le contenu a été mis à jour pour refléter la nouvelle propriété d'isolement de la portée ajoutée par le Service Pack 2.