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

  2. 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

  3. 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.