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 |