Compartir vía


Tabla virtual

Presenta una definición de tabla virtual en una instrucción DEFINE de una consulta DAX.

Sintaxis

[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>) +

Parámetros

La expresión de tabla define el contenido de la tabla virtual. La tabla virtual solo se define en el ámbito de la consulta actual.

Opcionalmente, se puede definir una forma visual en la tabla virtual. La forma visual se usa para el cálculo visual. Una forma visual consta de ejes con opcionalmente una columna BOOLEANA DENSIFY.

El eje se define como una lista de grupos acumulativos seguidos de una lista de orden por columnas para especificar cómo se ordena el eje. Un grupo acumulativo consta de uno o varios grupos por columnas y, a continuación, una columna TOTAL booleana que indica si cada fila es subtotal del grupo acumulativo actual. FALSE valor indica que la fila actual es la fila de detalles (agrupación por grupo acumulativo actual). TRUE valor indica que la fila actual se acumula (no agrupa por grupo acumulativo actual).

Si se solicita una columna DENSIFY, la forma visual realiza una densificación. Esto significa que además de las filas de la expresión de tabla original, también se agrega una combinación de valores de ejes que no existen en la expresión de tabla original. En otras palabras, se realiza una combinación externa izquierda de la combinación cruzada de ejes con la expresión de tabla original. Un valor TRUE en la columna DENSIFY indica que la fila actual no está en la expresión de tabla original y agrega el proceso de desnsificación. Dicha fila debe tener un valor vacío en todas las columnas de medida (columnas fuera de las definiciones de ejes). Un valor FALSE en la columna DENSIFY indica que la fila actual procede de la expresión de tabla original.

Valor devuelto

Se define una tabla virtual

Comentario

A diferencia de las variables, la tabla virtual tiene linaje propio y no lleva el linaje de la expresión de tabla desde la que se define.

Ejemplo

Supongamos que una tabla T tiene las siguientes filas:

Año Producto SalesAmount
2000 Manzana $ 10,1
2000 Plátano $ 10,2
2001 Manzana $ 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

El resultado devuelto es

data[Year] data[Product] data[IsYearTotal] data[IsProductTotal] data[Measure] data[IsDensified]
verdadero verdadero $ 40,6 falso
2000 falso verdadero $ 20,3 falso
2001 falso verdadero $ 20,3 falso
Manzana verdadero falso $ 30,4 falso
2000 Manzana falso falso $ 10,1 falso
2001 Manzana falso falso $ 20,3 falso
Plátano verdadero falso $ 10,2 falso
2000 Plátano falso falso $ 10,2 falso
2001 Plátano falso falso verdadero

DEFINE
EVALUATE
VAR
consultas deDAX columna virtual