Dela via


Virtuell tabell

Introducerar en virtuell tabelldefinition i en DEFINE-instruktion för en DAX fråga.

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

Parametrar

Tabelluttrycket definierar innehållet i den virtuella tabellen. Den virtuella tabellen definieras endast i den aktuella frågans omfång.

Du kan också definiera en visuell form i den virtuella tabellen. Visuell form används för visuell beräkning. En visuell form består av axlar med en boolesk DENSIFY-kolumn.

Axeln definieras som en lista över sammanslagningsgrupper följt av en lista med ordning efter kolumner för att ange hur axeln sorteras. En sammanslagningsgrupp består av en eller flera grupper efter kolumner och sedan en boolesk TOTAL-kolumn som anger om varje rad är delsumma för den aktuella sammanslagningsgruppen. FALSE värde anger att den aktuella raden är detaljrad (gruppering efter aktuell sammanslagningsgrupp). TRUE värde anger att den aktuella raden har ackumulerats (inte grupperas efter den aktuella sammanslagningsgruppen).

Om kolumnen DENSIFY begärs utför den visuella formen en förtätning. Det innebär att förutom raderna från det ursprungliga tabelluttrycket lägger vi även till en kombination av axelvärden som inte finns i det ursprungliga tabelluttrycket. Med andra ord gör vi en vänster yttre koppling från korskopplingen av axlar med det ursprungliga tabelluttrycket. Ett TRUE värde i kolumnen DENSIFY anger att den aktuella raden inte finns i det ursprungliga tabelluttrycket och läggs till av förtätningsprocessen. Den här raden bör ha ett tomt värde i alla måttkolumner (kolumner utanför axlarnas definitioner). Ett FALSE värde i kolumnen DENSIFY anger att den aktuella raden kommer från det ursprungliga tabelluttrycket.

Returvärde

En virtuell tabell definieras

Anmärkning

Till skillnad från variabler har den virtuella tabellen en egen härstamning och bär inte ursprunget från tabelluttrycket som den definieras från.

Exempel

Anta att en tabell T har följande rader:

År Produkt SalesAmount
2000 Äpple $ 10,1
2000 Banan $ 10,2
2001 Äpple $ 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

Det returnerade resultatet är

data[År] data[Product] data[IsYearTotal] data[IsProductTotal] data[Mått] data[IsDensified]
sann sann $ 40,6 falsk
2000 falsk sann $ 20,3 falsk
2001 falsk sann $ 20,3 falsk
Äpple sann falsk $ 30,4 falsk
2000 Äpple falsk falsk $ 10,1 falsk
2001 Äpple falsk falsk $ 20,3 falsk
Banan sann falsk $ 10,2 falsk
2000 Banan falsk falsk $ 10,2 falsk
2001 Banan falsk falsk sann

DEFINE
EVALUATE
VAR
virtuell kolumnDAX frågor