Virtuel tabel
Introducerer en definition af en virtuel tabel i en DEFINE sætning i en DAX forespørgsel.
Syntaks
[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
Tabeludtryk definerer indholdet af den virtuelle tabel. Den virtuelle tabel er kun defineret i omfanget af den aktuelle forespørgsel.
Du kan eventuelt definere en visuel figur i den virtuelle tabel. Visuel figur bruges til beregning af visualiseringer. En visuel figur består af akser med eventuelt en boolesk DENSIFY-kolonne.
Aksen er defineret til at være en liste over akkumuleringsgrupper efterfulgt af en liste over rækkefølge efter kolonner for at angive, hvordan aksen sorteres. En akkumuleringsgruppe består af en eller flere gruppér efter kolonner og derefter én boolesk TOTAL-kolonne, der angiver, om hver række er subtotal for den aktuelle akkumuleringsgruppe. FALSE værdi angiver, at den aktuelle række er detaljerække (gruppering efter aktuel akkumuleringsgruppe). TRUE værdi angiver, at den aktuelle række opløftes (ikke gruppering efter aktuel akkumuleringsgruppe).
Hvis der anmodes om kolonnen DENSIFY, udfører den visuelle figur en fornægtelse. Det betyder, at vi ud over rækkerne fra det oprindelige tabeludtryk også tilføjer en kombination af akseværdier, der ikke findes i det oprindelige tabeludtryk. Med andre ord udfører vi en venstre ydre joinforbindelse fra aksens tværgående joinforbindelse med det oprindelige tabeludtryk. En TRUE værdi i kolonnen DENSIFY angiver, at den aktuelle række ikke findes i det oprindelige tabeludtryk og tilføjes af densifikationsprocessen. Denne række skal have en tom værdi i alle målingskolonner (kolonner uden for aksedefinitioner). En FALSE værdi i kolonnen DENSIFY angiver, at den aktuelle række er fra det oprindelige tabeludtryk.
Returværdi
Der er defineret en virtuel tabel
Bemærkning
I modsætning til variabler har den virtuelle tabel afstamning af sig selv og bærer ikke afstamningen fra det tabeludtryk, den er defineret ud fra.
Eksempel
Antag, at en tabel T har følgende rækker:
År | Produkt | SalesAmount |
---|---|---|
2000 | Æble | 10,1 USD |
2000 | Banan | 10,2 USD |
2001 | Æble | 20,3 USD |
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 returnerede resultat er
data[Year] | data[Product] | data[IsYearTotal] | data[IsProductTotal] | data[Måling] | data[IsDensified] |
---|---|---|---|---|---|
sand | sand | 40,6 USD | falsk | ||
2000 | falsk | sand | 20,3 USD | falsk | |
2001 | falsk | sand | 20,3 USD | falsk | |
Æble | sand | falsk | 30,4 USD | falsk | |
2000 | Æble | falsk | falsk | 10,1 USD | falsk |
2001 | Æble | falsk | falsk | 20,3 USD | falsk |
Banan | sand | falsk | 10,2 USD | falsk | |
2000 | Banan | falsk | falsk | 10,2 USD | falsk |
2001 | Banan | falsk | falsk | sand |