Freigeben über


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

DEFINE
EVALUATE
VAR
DAX Abfragen