Delen via


Virtuele tabel

Introduceert een definitie van een virtuele tabel in een DEFINE instructie van een DAX query.

Syntaxis

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

Parameters

Tabelexpressie definieert de inhoud van de virtuele tabel. De virtuele tabel wordt alleen gedefinieerd in het bereik van de huidige query.

U kunt desgewenst een visualshape definiëren in de virtuele tabel. Visuele shape wordt gebruikt voor het berekenen van visuele elementen. Een visuele shape bestaat uit assen met optioneel een Booleaanse DENSIFY-kolom.

As wordt gedefinieerd als een lijst met samengetelde groepen, gevolgd door een lijst met volgorde per kolommen om op te geven hoe de as wordt geordend. Een samengetelde groep bestaat uit een of meer groepen per kolom en vervolgens één Booleaanse kolom TOTAL die aangeeft of elke rij een subtotaal is van de huidige samengetelde groep. FALSE waarde geeft aan dat de huidige rij een detailrij is (groeperen op huidige samengetelde groep). TRUE waarde geeft aan dat de huidige rij is samengevouwen (niet groeperen op huidige samengetelde groep).

Als de KOLOM DENSIFY wordt aangevraagd, voert de visuele shape een vernauwking uit. Dit betekent dat naast de rijen uit de oorspronkelijke tabelexpressie ook combinatie van aswaarden worden toegevoegd die niet aanwezig zijn in de oorspronkelijke tabelexpressie. Met andere woorden, we doen een left outer join van de kruising van assen met de oorspronkelijke tabelexpressie. Een TRUE waarde in de kolom DENSIFY geeft aan dat de huidige rij zich niet in de oorspronkelijke tabelexpressie bevindt en wordt toegevoegd door het densificatieproces. Deze rij moet een lege waarde hebben in alle maateenheidkolommen (kolommen buiten asdefinities). Een FALSE waarde in de kolom DENSIFY geeft aan dat de huidige rij afkomstig is van de oorspronkelijke tabelexpressie.

Retourwaarde

Er wordt een virtuele tabel gedefinieerd

Opmerking

In tegenstelling tot variabelen heeft de virtuele tabel een eigen herkomst en wordt de herkomst niet van de tabelexpressie meegenomen waaruit deze is gedefinieerd.

Voorbeeld

Stel dat een tabel T de volgende rijen heeft:

Jaar Product SalesAmount
2000 Appel $ 10,1
2000 Banaan $ 10,2
2001 Appel $ 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

Het geretourneerde resultaat is

data[Year] data[Product] data[IsYearTotal] data[IsProductTotal] data[Measure] data[IsDensified]
waar waar $ 40,6 vals
2000 vals waar $ 20,3 vals
2001 vals waar $ 20,3 vals
Appel waar vals $ 30,4 vals
2000 Appel vals vals $ 10,1 vals
2001 Appel vals vals $ 20,3 vals
Banaan waar vals $ 10,2 vals
2000 Banaan vals vals $ 10,2 vals
2001 Banaan vals vals waar

DEFINE
EVALUATE
VAR
virtuele kolomDAX query's