Del via


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

DEFINE
EVALUATE
VAR
forespørgsler om virtuelle kolonnerDAX