Partilhar via


Mesa Virtual

Introduz uma definição de tabela virtual em uma instrução DEFINE de uma consulta DAX.

Sintaxe

[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

A expressão de tabela define o conteúdo da tabela virtual. A tabela virtual só é definida no escopo da consulta atual.

Opcionalmente, uma forma visual pode ser definida na tabela virtual. A forma visual é usada para o cálculo visual. Uma forma visual consiste em eixos com opcionalmente uma coluna booleana DENSIFY.

Eixo é definido como uma lista de grupos de rollup seguida por uma lista de ordem por colunas para especificar como o eixo é ordenado. Um grupo de rollup consiste em um ou mais grupos por colunas e, em seguida, uma coluna Boolean TOTAL indicando se cada linha é subtotal do grupo de rollup atual. FALSE valor indica que a linha atual é a linha de detalhes (agrupamento por grupo de rollup atual). TRUE valor indica que a linha atual está acumulada (não agrupada por grupo cumulativo atual).

Se a coluna DENSIFY for solicitada, a forma visual executará uma densificação. Isso significa que, além das linhas da expressão de tabela original, também adicionamos valores de combinação de eixos que não existem na expressão de tabela original. Em outras palavras, fazemos uma junção externa esquerda a partir da junção cruzada de eixos com a expressão de tabela original. Um valor TRUE na coluna DENSIFY indica que a linha atual não está na expressão da tabela original e foi adicionada pelo processo de densificação. Essa linha deve ter valor vazio em todas as colunas de medida (colunas fora das definições de eixos). Um valor FALSE na coluna DENSIFY indica que a linha atual é da expressão de tabela original.

Valor de retorno

Uma tabela virtual é definida

Observação

Ao contrário das variáveis, a tabela virtual tem linhagem própria e não carrega a linhagem da expressão de tabela a partir da qual é definida.

Exemplo

Suponha que uma tabela T tenha as seguintes linhas:

Ano Produto SalesAmount
2000 Maçã $ 10.1
2000 Banana $ 10.2
2001 Maçã $ 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

O resultado retornado é

dados[Ano] dados[Produto] dados[IsYearTotal] dados[IsProductTotal] dados[Medida] dados[IsDensified]
verdadeiro verdadeiro $ 40.6 falso
2000 falso verdadeiro $ 20.3 falso
2001 falso verdadeiro $ 20.3 falso
Maçã verdadeiro falso $ 30.4 falso
2000 Maçã falso falso $ 10.1 falso
2001 Maçã falso falso $ 20.3 falso
Banana verdadeiro falso $ 10.2 falso
2000 Banana falso falso $ 10.2 falso
2001 Banana falso falso verdadeiro

DEFINE
EVALUATE
VAR
Coluna VirtualDAX consultas