GENERATEALL
platí pro:Počítaný sloupecPočítaná tabulkamíravizuální
Vrátí tabulku s kartézským součinem mezi jednotlivými řádky v tabulka1 a tabulkou, která je výsledkem vyhodnocení tabulky2 v kontextu aktuálního řádku z tabulky1.
Syntax
GENERATEALL(<table1>, <table2>)
Parametry
Semestr | Definice |
---|---|
table1 |
Libovolný DAX výraz, který vrací tabulku. |
table2 |
Libovolný DAX výraz, který vrací tabulku. |
Návratová hodnota
Tabulka s kartézským součinem mezi jednotlivými řádky v tabulka1 a tabulkou, která je výsledkem vyhodnocení tabulky2 v kontextu aktuálního řádku z tabulky1
Poznámky
Pokud vyhodnocení tabulky 2 pro aktuální řádek v tabulce1 vrátí prázdnou tabulku, bude aktuální řádek z tabulky tabulka1 zahrnut do výsledků a sloupce odpovídající tabulka2 budou mít pro tento řádek hodnoty null. To se liší od GENERATE(), kde aktuální řádek z tabulky tabulka1nebude zahrnut do výsledků.
Všechny názvy sloupců z tabulky1 a tabulka 2 musí být jiné nebo se vrátí chyba.
Tato funkce není podporována pro použití v režimu DirectQuery při použití v počítaných sloupcích nebo pravidlech zabezpečení na úrovni řádků (RLS).
Příklad
V následujícím příkladu chce uživatel souhrnnou tabulku prodeje podle oblastí a kategorie produktů pro kanál Prodejců, například následující tabulka:
SalesTerritory[SalesTerritoryGroup] | ProductCategory[ProductCategoryName] | [Reseller Sales] |
---|---|---|
Evropa | Příslušenství | $ 142,227,27 |
Evropa | Kola | $ 9,970,200,44 |
Evropa | Oděv | $ 365,847,63 |
Evropa | Součásti | $ 2,214,440,19 |
SODÍK | Příslušenství | |
SODÍK | Kola | |
SODÍK | Oděv | |
SODÍK | Součásti | |
Severní Amerika | Příslušenství | $ 379,305,15 |
Severní Amerika | Kola | $ 52,403,796,85 |
Severní Amerika | Oděv | $ 1,281,193,26 |
Severní Amerika | Součásti | $ 8,882,848,05 |
Mírumilovný | Příslušenství | $ 12,769,57 |
Mírumilovný | Kola | $ 710,677.75 |
Mírumilovný | Oděv | $ 22,902,38 |
Mírumilovný | Součásti | $ 108,549,71 |
Následující vzorec vytvoří výše uvedenou tabulku:
GENERATEALL(
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
,SUMMARIZE(ProductCategory
, [ProductCategoryName]
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
)
)
První SUMMARIZE vytvoří tabulku skupin oblastí, kde každý řádek je skupina oblastí, jako jsou ty uvedené níže:
SalesTerritory[SalesTerritoryGroup] Severní Amerika Evropa Mírumilovný SODÍK Druhý SUMMARIZE vytvoří tabulku skupin Kategorií produktů s prodejem prodejců pro každou skupinu, jak je znázorněno níže:
ProductCategory[ProductCategoryName] [Reseller Sales] Kola $ 63,084,675,04 Součásti $ 11,205,837,96 Oděv $ 1,669,943,27 Příslušenství $ 534,301,99 Kč Když ale vezmete výše uvedenou tabulku a vyhodnotíte ji v kontextu každého řádku z tabulky skupin oblastí, získáte pro každé území jiné výsledky.