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 |