Freigeben über


GENERATEALL-Funktion (DAX)

Gibt eine Tabelle mit dem kartesischen Produkt aus jeder Zeile in table1 und der Tabelle zurück, die sich aus der Auswertung von table2 im Kontext der aktuellen Zeile aus table1 ergibt.

Syntax

GENERATEALL(<table1>, <table2>)

Parameter

  • table1
    Ein DAX-Ausdruck, der eine Tabelle zurückgibt.

  • table2
    Ein DAX-Ausdruck, der eine Tabelle zurückgibt.

Rückgabewert

Eine Tabelle mit dem kartesischen Produkt aus jeder Zeile in table1 und der Tabelle, die sich aus der Auswertung von table2 im Kontext der aktuellen Zeile aus table1 ergibt.

Hinweise

  • Wenn die Auswertung von table2 für die aktuelle Zeile in table1 eine leere Tabelle zurückgibt, dann ist die aktuelle Zeile aus table1 in den Ergebnissen enthalten, und Spalten, die table2 entsprechen, enthalten NULL-Werte für diese Zeile. Dies unterscheidet sich von GENERATE(), wo die aktuelle Zeile aus table1 nicht in den Ergebnissen enthalten ist.

  • Alle Spaltennamen aus table1 und table2 müssen sich unterscheiden, oder es wird ein Fehler zurückgegeben.

Beispiel

Im folgenden Beispiel möchte der Benutzer eine Zusammenfassungstabelle der Verkäufe nach Region und Produktkategorie für den Wiederverkäuferkanal wie die folgende Tabelle erstellen:

SalesTerritory[SalesTerritoryGroup]

ProductCategory[ProductCategoryName]

[Reseller Sales]

Europe

Accessories

$ 142,227.27

Europe

Bikes

$ 9,970,200.44

Europe

Clothing

$ 365,847.63

Europe

Components

$ 2,214,440.19

NA

Accessories

NA

Bikes

NA

Clothing

NA

Components

North America

Accessories

$ 379,305.15

North America

Bikes

$ 52,403,796.85

North America

Clothing

$ 1,281,193.26

North America

Components

$ 8,882,848.05

Pacific

Accessories

$ 12,769.57

Pacific

Bikes

$ 710,677.75

Pacific

Clothing

$ 22,902.38

Pacific

Components

$ 108,549.71

Mit dem folgenden Code wird die oben erwähnte Tabelle erzeugt:

GENERATEALL(
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
,SUMMARIZE(ProductCategory 
, [ProductCategoryName]
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
)
)
  1. Mit der ersten SUMMARIZE-Anweisung wird eine Tabelle von Gebietsgruppen erzeugt, wobei jede Zeile eine Gebietsgruppe ist, wie unten aufgelistet:

    SalesTerritory[SalesTerritoryGroup]

    North America

    Europe

    Pacific

    NA

  2. Die zweite SUMMARIZE-Anweisung erzeugt eine Tabelle von Produktkategoriegruppen mit den Verkäufen des Wiederverkäufers für jede Gruppe, wie unten dargestellt:

    ProductCategory[ProductCategoryName]

    [Reseller Sales]

    Bikes

    $ 63,084,675.04

    Components

    $ 11,205,837.96

    Clothing

    $ 1,669,943.27

    Accessories

    $ 534,301.99

  3. Wenn Sie jedoch die oben genannte Tabelle im Kontext jeder Zeile aus der Tabelle der Gebietsgruppen auswerten, erhalten Sie andere Ergebnisse für jedes Gebiet.