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])
)
)
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
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
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.