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 |