Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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)