Condividi tramite


Tabella virtuale

Introduce una definizione di tabella virtuale in un'istruzione DEFINE di una query DAX.

Sintassi

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

Parametri

L'espressione di tabella definisce il contenuto della tabella virtuale. La tabella virtuale è definita solo nell'ambito della query corrente.

Facoltativamente, è possibile definire una forma visiva nella tabella virtuale. La forma visiva viene utilizzata per il calcolo visivo. Una forma visiva è costituita da assi con facoltativamente una colonna DENSIFY booleana.

L'asse è definito come un elenco di gruppi di rollup seguito da un elenco di colonne in base all'ordine per specificare la modalità di ordinamento dell'asse. Un gruppo di rollup è costituito da una o più colonne raggruppate per colonne e quindi da una colonna TOTALE booleana che indica se ogni riga è subtotale del gruppo di rollup corrente. FALSE valore indica che la riga corrente è una riga di dettaglio (raggruppamento in base al gruppo di rollup corrente). TRUE valore indica che viene eseguito il rollup della riga corrente (non raggruppando in base al gruppo di rollup corrente).

Se viene richiesta la colonna DENSIFY, la forma visiva esegue una densificazione. Ciò significa che oltre alle righe dell'espressione di tabella originale, viene aggiunta anche la combinazione di valori degli assi che non esistono nell'espressione di tabella originale. In altre parole, si esegue un left outer join dal cross join degli assi con l'espressione di tabella originale. Un valore TRUE nella colonna DENSIFY indica che la riga corrente non è nell'espressione di tabella originale e aggiunta dal processo di densificazione. Tale riga deve avere un valore vuoto in tutte le colonne di misura (colonne esterne alle definizioni degli assi). Un valore FALSE nella colonna DENSIFY indica che la riga corrente proviene dall'espressione di tabella originale.

Valore restituito

Viene definita una tabella virtuale

Osservazione

A differenza delle variabili, la tabella virtuale ha una derivazione propria e non porta la derivazione dall'espressione di tabella da cui è definita.

Esempio

Si supponga che una tabella T includa le righe seguenti:

Anno Prodotto SalesAmount
2000 Mela $ 10,1
2000 Banana $ 10,2
2001 Mela $ 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

Il risultato restituito è

data[Year] data[Product] data[IsYearTotal] data[IsProductTotal] data[Measure] data[IsDensified]
vero vero $ 40,6 falso
2000 falso vero $ 20,3 falso
2001 falso vero $ 20,3 falso
Mela vero falso $ 30,4 falso
2000 Mela falso falso $ 10,1 falso
2001 Mela falso falso $ 20,3 falso
Banana vero falso $ 10,2 falso
2000 Banana falso falso $ 10,2 falso
2001 Banana falso falso vero

DEFINE
EVALUATE
VAR
queryDAX colonne virtuali