Table virtuelle
Introduit une définition de table virtuelle dans une instruction DEFINE d’une requête DAX.
Syntaxe
[DEFINE
(
TABLE <table name> = <table expression>
[WITH VISUAL SHAPE
(AXIS <axis name>
(GROUP <column>[, <column>] + TOTAL <column>) +
ORDER BY <column>[, <column>] +
) +
[DENSIFY <string literal>]
]
) +
]
(EVALUATE <table expression>) +
Paramètres
L’expression de table définit le contenu de la table virtuelle. La table virtuelle est définie uniquement dans l’étendue de la requête actuelle.
Si vous le souhaitez, une forme visuelle peut être définie sur la table virtuelle. La forme visuelle est utilisée pour le calcul visuel. Une forme visuelle se compose d’axes avec éventuellement une colonne DENSIFY booléenne.
L’axe est défini comme une liste de groupes de cumuls suivi d’une liste d’ordre par colonnes pour spécifier la façon dont l’axe est ordonné. Un groupe de cumul se compose d’un ou plusieurs groupes par colonnes, puis d’une colonne TOTAL booléenne indiquant si chaque ligne est sous-total du groupe cumulatif actuel. FALSE valeur indique que la ligne actuelle est une ligne de détail (regroupement par groupe cumulatif actuel). TRUE valeur indique que la ligne actuelle est inscrite (pas le regroupement par groupe cumulatif actuel).
Si la colonne DENSIFY est demandée, la forme visuelle effectue unensification. Cela signifie qu’en plus des lignes de l’expression de table d’origine, nous ajoutons également une combinaison de valeurs d’axes qui n’existent pas dans l’expression de table d’origine. En d’autres termes, nous effectuons une jointure externe gauche à partir de la jointure croisée d’axes avec l’expression de table d’origine. Une valeur TRUE dans la colonne DENSIFY indique que la ligne actuelle n’est pas dans l’expression de table d’origine et ajoutée par le processus densification. Cette ligne doit avoir une valeur vide dans toutes les colonnes de mesure (colonnes en dehors des définitions d’axes). Une valeur FALSE dans la colonne DENSIFY indique que la ligne actuelle provient de l’expression de table d’origine.
Valeur de retour
Une table virtuelle est définie
Remarque
Contrairement aux variables, la table virtuelle possède une traçabilité propre et ne porte pas la traçabilité de l’expression de table à partir de laquelle elle est définie.
Exemple
Supposons qu’une table T comporte les lignes suivantes :
Année | Produit | SalesAmount |
---|---|---|
2000 | Pomme | 10,1 $ |
2000 | Banane | 10,2 $ |
2001 | Pomme | 20,3 $ |
DEFINE TABLE data = SUMMARIZECOLUMNS(ROLLUPADDISSUBTOTAL(T[Year], "IsYearTotal"), ROLLUPADDISSUBTOTAL(T[Product], "IsProductTotal"), "Meausre", SUM(T[SalesAmount]))
WITH VISUAL SHAPE
AXIS ROWS GROUP [Year] TOTAL [IsYearTotal] ORDER BY [Year]
AXIS COLUMNS GROUP [Product] TOTAL [IsProductTotal] ORDER BY [Product]
DENSIFY "IsDensified"
EVALUATE data
Le résultat retourné est
data[Year] | data[Product] | data[IsYearTotal] | data[IsProductTotal] | data[Measure] | data[IsDensified] |
---|---|---|---|---|---|
vrai | vrai | 40,6 $ | faux | ||
2000 | faux | vrai | 20,3 $ | faux | |
2001 | faux | vrai | 20,3 $ | faux | |
Pomme | vrai | faux | 30,4 $ | faux | |
2000 | Pomme | faux | faux | 10,1 $ | faux |
2001 | Pomme | faux | faux | 20,3 $ | faux |
Banane | vrai | faux | 10,2 $ | faux | |
2000 | Banane | faux | faux | 10,2 $ | faux |
2001 | Banane | faux | faux | vrai |