Generate (MDX)Generate (MDX)

Applique un jeu à chaque membre d'un autre jeu, puis effectue la jointure par union des jeux résultants.Applies a set to each member of another set, and then joins the resulting sets by union. Cette fonction retourne également une chaîne concaténée créée par l'évaluation d'une expression de chaîne sur un jeu.Alternatively, this function returns a concatenated string created by evaluating a string expression over a set.

SyntaxeSyntax

  
Set expression syntax  
Generate( Set_Expression1 ,  Set_Expression2 [ , ALL ]  )  
  
String expression syntax  
Generate( Set_Expression1 ,  String_Expression [ ,Delimiter ]  )  

ArgumentsArguments

Set_Expression1Set_Expression1
Une expression MDX (Multidimensional Expressions) valide qui retourne un jeu.A valid Multidimensional Expressions (MDX) expression that returns a set.

Set_Expression2Set_Expression2
Une expression MDX (Multidimensional Expressions) valide qui retourne un jeu.A valid Multidimensional Expressions (MDX) expression that returns a set.

String_ExpressionString_Expression
Expression de chaîne valide qui correspond généralement au nom du membre actuel (CurrentMember.Name) de chaque tuple dans le jeu spécifié.A valid string expression that is typically the name of the current member (CurrentMember.Name) of each tuple in the specified set.

DélimiteurDelimiter
Délimiteur valide exprimé en tant qu'expression de chaîne.A valid delimiter expressed as a string expression.

NotesRemarks

Si un deuxième jeu est spécifié, le générer fonction retourne un jeu généré en appliquant les tuples dans le deuxième jeu à chaque tuple dans le premier jeu, et puis associant les jeux obtenus par union.If a second set is specified, the Generate function returns a set generated by applying the tuples in the second set to each tuple in the first set, and then joining the resulting sets by union. Si tous les est spécifié, la fonction conserve les doublons dans le jeu résultant.If ALL is specified, the function retains duplicates in the resulting set.

Si une expression de chaîne est spécifiée, le générer fonction retourne une chaîne générée en évaluant l’expression de chaîne spécifiée par rapport à chaque tuple dans le premier jeu et puis en concaténant les résultats.If a string expression is specified, the Generate function returns a string generated by evaluating the specified string expression against each tuple in the first set, and then concatenating the results. Vous pouvez éventuellement délimiter la chaîne en séparant chaque résultat dans la chaîne concaténée obtenue.Optionally, the string can be delimited, separating each result in the resulting concatenated string.

ExemplesExamples

DéfinissezSet

Dans l'exemple suivant, la requête retourne un jeu qui contient le montant des ventes sur Internet de Mesure quatre fois, parce qu'il y a quatre membres dans le jeu [Date].[Calendar Year].[Calendar Year].MEMBERS :In the following example, the query returns a set containing the Measure Internet Sales amount four times, because there are four members in the set [Date].[Calendar Year].[Calendar Year].MEMBERS:

SELECT   
GENERATE( [Date].[Calendar Year].[Calendar Year].MEMBERS  
, {[Measures].[Internet Sales Amount]}, ALL)  
ON 0  
FROM [Adventure Works]  

La suppression de ALL modifie la requête afin que le Montant des ventes sur Internet soit retourné une fois uniquement :Removing the ALL changes the query so that the Internet Sales Amount is returned once only:

SELECT   
GENERATE( [Date].[Calendar Year].[Calendar Year].MEMBERS  
, {[Measures].[Internet Sales Amount]})  
ON 0  
FROM [Adventure Works]  

L’utilisation pratique la plus commune de générer est définie pour évaluer un type complexe expression, telle que TopCount, sur un jeu de membres.The most common practical use of Generate is to evaluate a complex set expression, such as TopCount, over a set of members. L'exemple de requête suivant affiche les 10 premiers produits pour chaque année civile sur les lignes :The following example query displays the top 10 Products for each Calendar Year on Rows:

SELECT   
{[Measures].[Internet Sales Amount]}  
ON 0,  
GENERATE(   
[Date].[Calendar Year].[Calendar Year].MEMBERS  
, TOPCOUNT(  
[Date].[Calendar Year].CURRENTMEMBER  
*  
[Product].[Product].[Product].MEMBERS  
,10, [Measures].[Internet Sales Amount]))  
ON 1  
FROM [Adventure Works]  

Notez qu’un différent des 10 premiers sont affiché pour chaque année et que l’utilisation de générer est le seul moyen pour obtenir ce résultat.Note that a different top 10 is displayed for each year, and that the use of Generate is the only way to get this result. La simple jonction croisée des années civiles et du jeu des 10 premiers produits affichent les 10 premiers produits pour toutes les périodes, pour chaque année, comme illustré dans l'exemple suivant :Simply crossjoining Calendar Years and the set of top 10 Products will display the top 10 Products for all time, repeated for each year, as shown in the following example:

SELECT   
{[Measures].[Internet Sales Amount]}  
ON 0,  
[Date].[Calendar Year].[Calendar Year].MEMBERS  
*   
TOPCOUNT(  
[Product].[Product].[Product].MEMBERS  
,10, [Measures].[Internet Sales Amount])  
ON 1  
FROM [Adventure Works]  

StringString

L’exemple suivant illustre l’utilisation de générer pour retourner une chaîne :The following example shows the use of Generate to return a string:

WITH   
MEMBER MEASURES.GENERATESTRINGDEMO AS  
GENERATE(   
[Date].[Calendar Year].[Calendar Year].MEMBERS,  
[Date].[Calendar Year].CURRENTMEMBER.NAME)  
MEMBER MEASURES.GENERATEDELIMITEDSTRINGDEMO AS  
GENERATE(   
[Date].[Calendar Year].[Calendar Year].MEMBERS,  
[Date].[Calendar Year].CURRENTMEMBER.NAME, " AND ")  
SELECT   
{MEASURES.GENERATESTRINGDEMO, MEASURES.GENERATEDELIMITEDSTRINGDEMO}  
ON 0  
FROM [Adventure Works]  

Notes

Cette forme de la générer fonction peut être utile lors du débogage des calculs, car elle permet de renvoyer une chaîne qui affiche les noms de tous les membres dans un jeu.This form of the Generate function can be useful when debugging calculations, as it enables you to return a string displaying the names of all the members in a set. Cela peut être plus facile à lire que la représentation MDX stricte d’un jeu qui le SetToStr (MDX) fonction renvoie.This might be easier to read than the strict MDX representation of a set that the SetToStr (MDX) function returns.

Voir aussiSee Also

Guide de référence des fonctions MDX (MDX)MDX Function Reference (MDX)