Funzione GENERATEALL (DAX)
Viene restituita una tabella con il prodotto cartesiano tra ogni riga nel parametro table1 e la tabella risultante dalla valutazione del parametro table2 nel contesto della riga corrente dal parametro table1.
Sintassi
GENERATEALL(<table1>, <table2>)
Parametri
table1
Qualsiasi espressione DAX tramite cui viene restituita una tabella.table2
Qualsiasi espressione DAX tramite cui viene restituita una tabella.
Valore restituito
Tabella con il prodotto cartesiano tra ogni riga nel parametro table1 e la tabella risultante dalla valutazione del parametro table2 nel contesto della riga corrente dal parametro table1.
Osservazioni
Se tramite la valutazione del parametro table2 per la riga corrente nel parametro table1 viene restituita una tabella vuota, la riga corrente dal parametro table1 sarà inclusa nei risultati e nelle colonne corrispondenti al parametro table2 saranno disponibili valori Null per tale riga. Questo comportamento è diverso da GENERATEALL() in cui la riga corrente dal parametro table1 non sarà inclusa nei risultati.
Tutti i nomi di colonna da table1 e table2 devono essere diversi, altrimenti viene restituito un errore.
Esempio
Nell'esempio seguente l'utente desidera una tabella di riepilogo delle vendite per regione e categoria prodotto per il canale dei rivenditori, come la tabella seguente:
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 |
ND |
Accessories |
|
ND |
Bikes |
|
ND |
Clothing |
|
ND |
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 |
Tramite il codice seguente viene prodotta la tabella sopra indicata:
GENERATEALL(
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
,SUMMARIZE(ProductCategory
, [ProductCategoryName]
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
)
)
Tramite la prima istruzione SUMMARIZE viene prodotta una tabella di gruppi territorio, in cui ogni riga è un gruppo territorio, come quelli elencati di seguito:
SalesTerritory[SalesTerritoryGroup]
North America
Europe
Pacific
ND
Tramite la seconda istruzione SUMMARIZE, viene prodotta una tabella di gruppi di categoria prodotto con le vendite del rivenditore per ogni gruppo, come illustrato di seguito:
ProductCategory[ProductCategoryName]
[Reseller Sales]
Bikes
$ 63,084,675.04
Components
$ 11,205,837.96
Clothing
$ 1,669,943.27
Accessories
$ 534,301.99
Tuttavia, quando si accetta la tabella precedente e la si valuta nel contesto di ogni riga derivante dalla tabella gruppi territorio, si ottengono risultati diversi per ogni territorio.