Virtuálna tabuľka

Zavádza definíciu virtuálnej tabuľky v príkaze DEFINEDAX dotazu.

Syntax

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

Parametre

Výraz "Table" definuje obsah virtuálnej tabuľky. Virtuálna tabuľka je definovaná len v rozsahu aktuálneho dotazu.

Voliteľne možno tvar vizuálu definovať vo virtuálnej tabuľke. Vizuálny tvar sa používa na výpočet vizuálu. Vizuálny tvar sa skladá z osí s voliteľne booleovským stĺpcom DENSIFY.

Os je definovaná ako zoznam skupín súhrnov, za ktorými nasleduje zoznam zoradenia podľa stĺpcov, za ktorým sa určuje poradie osi. Skupina súhrnu pozostáva z jednej alebo viacerých skupín podľa stĺpcov a potom jedného booleovského stĺpca TOTAL označujúceho, či každý riadok je medzisúčtom aktuálnej skupiny súhrnu. FALSE hodnota označuje, že aktuálny riadok je riadok podrobností (zoskupenie podľa aktuálnej skupiny súhrnu). TRUE hodnota znamená, že aktuálny riadok je zhrnutý (nie zoskupovanie podľa aktuálnej skupiny súhrnu).

Ak sa požaduje stĺpec DENSIFY, tvar vizuálu vykoná densification. To znamená, že okrem riadkov z pôvodného výrazu tabuľky pridáme aj kombináciu hodnôt osí, ktoré neexistujú v pôvodnom výraze tabuľky. Inými slovami, vykonáme vonkajšie spojenie zľava z krížového spojenia osí s pôvodným výrazom tabuľky. Hodnota TRUE v stĺpci DENSIFY znamená, že aktuálny riadok nie je vo výraze pôvodnej tabuľky a pridáva ho proces densifikácie. Takýto riadok by mal mať prázdnu hodnotu vo všetkých stĺpcoch mierky (stĺpce mimo definícií osí). Hodnota FALSE v stĺpci DENSIFY označuje, že aktuálny riadok je z pôvodného výrazu tabuľky.

Vrátená hodnota

Definovaná je virtuálna tabuľka

Poznámka

Na rozdiel od premenných má virtuálna tabuľka vlastný pôvod a nenesie pôvod z výrazu tabuľky, z ktorý je definovaný.

Príklad

Predpokladajme, že tabuľka T má nasledujúce riadky:

Rok Výrobok SalesAmount (ObjemPredaja)
2000 Jablko 10,1 EUR
2000 Banán 10,2 EUR
2001 Jablko 20,3 EUR
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

Vrátený výsledok je

data[Year] data[Product] data[IsYearTotal] data[IsProductTotal] data[Measure] data[IsDensified]
pravdivý pravdivý 40,6 EUR False (nepravd
2000 False (nepravd pravdivý 20,3 EUR False (nepravd
2001 False (nepravd pravdivý 20,3 EUR False (nepravd
Jablko pravdivý False (nepravd 30,4 EUR False (nepravd
2000 Jablko False (nepravd False (nepravd 10,1 EUR False (nepravd
2001 Jablko False (nepravd False (nepravd 20,3 EUR False (nepravd
Banán pravdivý False (nepravd 10,2 EUR False (nepravd
2000 Banán False (nepravd False (nepravd 10,2 EUR False (nepravd
2001 Banán False (nepravd False (nepravd pravdivý