Virtuelle Tabelle
Führt eine virtuelle Tabellendefinition in einer DEFINE-Anweisung einer DAX Abfrageein.
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>) +
Parameter
Der Tabellenausdruck definiert den Inhalt der virtuellen Tabelle. Die virtuelle Tabelle wird nur im Bereich der aktuellen Abfrage definiert.
Optional kann ein visuelles Shape in der virtuellen Tabelle definiert werden. Visuelles Shape wird für die visuelle Berechnung verwendet. Eine visuelle Form besteht aus Achsen mit optional einer booleschen DENSIFY-Spalte.
Die Achse ist definiert, um eine Liste von Rollupgruppen zu sein, gefolgt von einer Liste der Reihenfolge nach Spalten, um anzugeben, wie die Achse sortiert wird. Eine Rollupgruppe besteht aus einer oder mehreren Gruppen nach Spalten und dann einer booleschen SUMME-Spalte, die angibt, ob jede Zeile Teilergebnis der aktuellen Rollupgruppe ist. FALSE Wert gibt an, dass die aktuelle Zeile eine Detailzeile ist (gruppieren nach aktueller Rollupgruppe). TRUE Wert gibt an, dass die aktuelle Zeile rollup ausgeführt wird (nicht nach aktueller Rollupgruppe gruppieren).
Wenn die SPALTE DENSIFY angefordert wird, führt die visuelle Form eine Verdichtung durch. Dies bedeutet, dass wir zusätzlich zu den Zeilen aus dem ursprünglichen Tabellenausdruck auch eine Kombination aus Achsenwerten hinzufügen, die im ursprünglichen Tabellenausdruck nicht vorhanden sind. Mit anderen Worten: Wir führen eine linke äußere Verknüpfung aus dem Kreuzverknall von Achsen mit dem ursprünglichen Tabellenausdruck aus. Ein TRUE Wert in DER SPALTE DENSIFY gibt an, dass sich die aktuelle Zeile nicht im ursprünglichen Tabellenausdruck befindet und vom Dichteprozess hinzugefügt wird. Diese Zeile sollte in allen Measurespalten einen leeren Wert haben (Spalten außerhalb der Achsendefinitionen). Ein FALSE Wert in DER SPALTE DENSIFY gibt an, dass die aktuelle Zeile aus dem ursprünglichen Tabellenausdruck stammt.
Rückgabewert
Eine virtuelle Tabelle ist definiert.
Bemerkung
Im Gegensatz zu Variablen weist die virtuelle Tabelle eine eigene Linie auf und trägt nicht die Linie aus dem Tabellenausdruck, aus dem sie definiert ist.
Beispiel
Gehen Sie davon aus, dass eine Tabelle T folgende Zeilen enthält:
Jahr | Produkt | SalesAmount |
---|---|---|
2000 | Apfel | $ 10,1 |
2000 | Banane | $ 10.2 |
2001 | Apfel | $ 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
Das zurückgegebene Ergebnis ist
data[Year] | data[Product] | data[IsYearTotal] | data[IsProductTotal] | data[Measure] | data[IsDensified] |
---|---|---|---|---|---|
STIMMT | STIMMT | $ 40,6 | FALSCH | ||
2000 | FALSCH | STIMMT | $ 20,3 | FALSCH | |
2001 | FALSCH | STIMMT | $ 20,3 | FALSCH | |
Apfel | STIMMT | FALSCH | $ 30,4 | FALSCH | |
2000 | Apfel | FALSCH | FALSCH | $ 10,1 | FALSCH |
2001 | Apfel | FALSCH | FALSCH | $ 20,3 | FALSCH |
Banane | STIMMT | FALSCH | $ 10.2 | FALSCH | |
2000 | Banane | FALSCH | FALSCH | $ 10.2 | FALSCH |
2001 | Banane | FALSCH | FALSCH | STIMMT |