Compartilhar via


Tabela Virtual

Apresenta 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 cálculo visual. Uma forma visual consiste em eixos com opcionalmente uma coluna DENSIFY booliana.

O eixo é definido como uma lista de grupos cumulativos seguidos por uma lista de ordem por colunas para especificar como o eixo é ordenado. Um grupo cumulativo consiste em um ou mais grupos por colunas e, em seguida, uma coluna TOTAL booliana indicando se cada linha é subtotal do grupo cumulativo atual. FALSE valor indica que a linha atual é linha de detalhes (agrupamento pelo grupo de rollup atual). TRUE valor indica que a linha atual está acumulada (não agrupando pelo grupo de rollup 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 a combinação de valores de eixos que não existem na expressão de tabela original. Em outras palavras, fazemos uma junção externa esquerda 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 de tabela original e 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

Comentário

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

Exemplo

Suponha que uma tabela T tenha as seguintes linhas:

Ano Produto SalesAmount
2000 Maçã R$ 10,1
2000 Banana R$ 10,2
2001 Maçã R$ 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 é

data[Year] data[Product] data[IsYearTotal] data[IsProductTotal] data[Measure] data[IsDensified]
verdadeiro verdadeiro R$ 40,6 falso
2000 falso verdadeiro R$ 20,3 falso
2001 falso verdadeiro R$ 20,3 falso
Maçã verdadeiro falso R$ 30,4 falso
2000 Maçã falso falso R$ 10,1 falso
2001 Maçã falso falso R$ 20,3 falso
Banana verdadeiro falso R$ 10,2 falso
2000 Banana falso falso R$ 10,2 falso
2001 Banana falso falso verdadeiro

DEFINE
EVALUATE
VAR
consultas de de coluna virtual