Sdílet prostřednictvím


Virtuální tabulka

Představuje definici virtuální tabulky v DEFINE příkazu dotazu DAX.

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

Parametry

Výraz tabulky definuje obsah virtuální tabulky. Virtuální tabulka je definována pouze v oboru aktuálního dotazu.

Volitelně lze ve virtuální tabulce definovat obrazec vizuálu. Obrazec vizuálu se používá pro výpočet vizuálu. Obrazec vizuálu se skládá z os s volitelně logickým sloupcem DENSIFY.

Osa je definována tak, aby byla seznamem souhrnných skupin následovaných seznamem pořadí podle sloupců, aby bylo možné určit, jak se má osa uspořádat. Souhrnná skupina se skládá z jedné nebo více skupin podle sloupců a potom jednoho logického sloupce TOTAL označujícího, jestli je každý řádek mezisoučtem aktuální souhrnné skupiny. FALSE hodnota označuje, že aktuální řádek je řádek podrobností (seskupení podle aktuální souhrnné skupiny). TRUE hodnota označuje, že se aktuální řádek zahrne (neskupuje se podle aktuální souhrnné skupiny).

Pokud je požadován sloupec DENSIFY, obrazec vizuálu provede densification. To znamená, že kromě řádků z původního výrazu tabulky přidáme také kombinaci hodnot os, které v původním výrazu tabulky neexistují. Jinými slovy, děláme levé vnější spojení z křížového spojení os s původním výrazem tabulky. Hodnota TRUE ve sloupci DENSIFY označuje, že aktuální řádek není v původním výrazu tabulky a přidává se procesem densifikace. Tento řádek by měl mít ve všech sloupcích měr prázdnou hodnotu (sloupce mimo definice os). Hodnota FALSE ve sloupci DENSIFY označuje, že aktuální řádek pochází z původního výrazu tabulky.

Návratová hodnota

Definuje se virtuální tabulka.

Poznámka

Na rozdíl od proměnných má virtuální tabulka vlastní rodokmen a nepřenáší rodokmen z výrazu tabulky, ze které je definovaný.

Příklad

Předpokládejme, že tabulka T má následující řádky:

Rok Výrobek SalesAmount
2000 Jablko $ 10,1
2000 Banán $ 10.2
2001 Jablko $ 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

Vrácený výsledek je

data[Rok] data[Produkt] data[IsYearTotal] data[IsProductTotal] data[Míra] data[IsDensified]
pravdivý pravdivý $ 40.6 falešný
2000 falešný pravdivý $ 20.3 falešný
2001 falešný pravdivý $ 20.3 falešný
Jablko pravdivý falešný $ 30.4 falešný
2000 Jablko falešný falešný $ 10,1 falešný
2001 Jablko falešný falešný $ 20.3 falešný
Banán pravdivý falešný $ 10.2 falešný
2000 Banán falešný falešný $ 10.2 falešný
2001 Banán falešný falešný pravdivý

DEFINE
EVALUATE
VAR
dotazyDAX virtuálních sloupců