Partager via


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

DEFINE
EVALUATE
VAR
requêtesDAX de colonne virtuelle