Jeux nommés MDX - Création de jeux nommés à portée de requête

S’applique à : SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Si un jeu nommé n’est requis que pour une requête MDX (Multidimensional Expressions), vous pouvez définir ce jeu nommé à l’aide du mot clé WITH. Un ensemble nommé créé à l’aide du mot clé WITH cesse d’exister après l’exécution de la requête.

Comme indiqué dans cette rubrique, la syntaxe du mot clé WITH est assez flexible, même en tenant compte de l’utilisation de fonctions pour définir l’ensemble nommé.

Note

Pour plus d’informations sur les jeux nommés, consultez Création de jeux nommés dans MDX (MDX).

Syntaxe du mot clé WITH

Utilisez la syntaxe suivante pour ajouter le mot clé WITH à une instruction MDX SELECT :

[ WITH <SELECT WITH clause> [ , <SELECT WITH clause> ... ] ]   
SELECT [ * | ( <SELECT query axis clause> [ , <SELECT query axis clause> ... ] ) ]  
FROM <SELECT subcube clause>   
[ <SELECT slicer axis clause> ]  
[ <SELECT cell property list clause> ]  
  
<SELECT WITH clause> ::=  
   ( SET Set_Identifier AS 'Set_Expression')  
  

Dans la syntaxe du mot clé WITH, le paramètre Set_Identifier contient l'alias de l'ensemble nommé. Le paramètre Set_Expression contient l'expression de jeu à laquelle l'alias de jeu nommé fait référence.

WITH, exemple de mot clé

La requête MDX suivante examine les ventes unitaires des différents vins de Champagne et De Chablis dans FoodMart 2000, l’exemple de base de données pour Microsoft SQL Server 2000 Analysis Services. Cette requête, bien que relativement simple en termes de jeu de résultats, est longue et difficile à gérer lorsque vous devez la maintenir.

SELECT  
   {[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Good].[Good Chardonnay],   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Pearl].[Pearl Chardonnay],   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Portsmouth].[Portsmouth Chardonnay],   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Top Measure].[Top Measure Chardonnay],   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Walrus].[Walrus Chardonnay],   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Good].[Good Chablis Wine],   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Pearl].[Pearl Chablis Wine],   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Portsmouth].[Portsmouth Chablis Wine],   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Top Measure].[Top Measure Chablis Wine],   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Walrus].[Walrus Chablis Wine]} ON COLUMNS,  
   {Measures.[Unit Sales]} ON ROWS  
FROM Sales  

Pour faciliter la maintenance de la requête MDX précédente, vous pouvez créer un ensemble nommé pour la requête en utilisant le mot-clé WITH. Le code suivant montre comment utiliser le mot clé WITH pour créer un jeu nommé, [ChardonnayChablis], et comment l’ensemble nommé rend l’instruction SELECT plus courte et plus facile à gérer.

WITH SET [ChardonnayChablis] AS  
   {[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Good].[Good Chardonnay],  
   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Pearl].[Pearl Chardonnay],  
   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Portsmouth].[Portsmouth Chardonnay],  
   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Top Measure].[Top Measure Chardonnay],  
   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Walrus].[Walrus Chardonnay],  
   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Good].[Good Chablis Wine],  
   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Pearl].[Pearl Chablis Wine],  
   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Portsmouth].[Portsmouth Chablis Wine],  
   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Top Measure].[Top Measure Chablis Wine],  
   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Walrus].[Walrus Chablis Wine]}  
  
SELECT  
   [ChardonnayChablis] ON COLUMNS,  
   {Measures.[Unit Sales]} ON ROWS  
FROM Sales  

Utilisation de fonctions avec le mot clé WITH

Bien que vous puissiez définir explicitement chaque membre d’un ensemble nommé, cette approche peut produire une déclaration longue. Pour faciliter la création et la maintenance d’un ensemble nommé, vous pouvez utiliser les fonctions MDX pour définir les membres.

Par exemple, l’exemple de requête MDX suivant utilise les fonctions Filter, CurrentMember et Name MDX et InStr VBA pour créer le [ChardonnayChablis] jeu nommé. Cette version de l’ensemble [ChardonnayChablis] nommé est identique à la version définie explicitement indiquée précédemment dans cette rubrique.

WITH SET [ChardonnayChablis] AS  
   'Filter([Product].Members, (InStr(1, [Product].CurrentMember.Name, "chardonnay") <> 0) OR (InStr(1, [Product].CurrentMember.Name, "chablis") <> 0))'  
  
SELECT  
   [ChardonnayChablis] ON COLUMNS,  
   {Measures.[Unit Sales]} ON ROWS  
FROM Sales  
  

Voir aussi

SELECT, instruction (MDX)
Création d'ensembles nommés à portée de session (MDX)