GENERATE
gælder for:beregnet kolonneberegnet tabelberegning af målingvisualisering
Returnerer en tabel med det kartesiske produkt mellem hver række i table1 og den tabel, der er resultatet af evalueringen af table2 i konteksten af den aktuelle række fra table1.
Syntaks
GENERATE(<table1>, <table2>)
Parametre
Udtryk | Definition |
---|---|
table1 |
Ethvert DAX udtryk, der returnerer en tabel. |
table2 |
Ethvert DAX udtryk, der returnerer en tabel. |
Returværdi
En tabel med det kartesiske produkt mellem hver række i table1 og den tabel, der er resultatet af evalueringen af table2 i konteksten af den aktuelle række fra table1
Bemærkninger
Hvis evalueringen af table2 for den aktuelle række i table1 returnerer en tom tabel, indeholder resultattabellen ikke den aktuelle række fra table1. Dette er forskelligt fra GENERATEALL(), hvor den aktuelle række fra table1 medtages i resultaterne og kolonnerne, der svarer til table2- vil have null-værdier for den pågældende række.
Alle kolonnenavne fra table1 og table2- skal være forskellige, eller der returneres en fejl.
Denne funktion understøttes ikke til brug i DirectQuery-tilstand, når den bruges i beregnede kolonner eller RLS-regler (row-level security).
Eksempel
I følgende eksempel ønsker brugeren en oversigtstabel over salg efter område og produktkategori for forhandlerkanalen, f.eks. følgende tabel:
SalesTerritory[SalesTerritoryGroup] | ProductCategory[ProductCategoryName] | [Forhandlersalg] |
---|---|---|
Europa | Tilbehør | 142.227,27 USD |
Europa | Cykler | 9.970.200,44 USD |
Europa | Tøj | 365.847,63 USD |
Europa | Komponenter | 2.214.440,19 USD |
Nordamerika | Tilbehør | 379.305,15 USD |
Nordamerika | Cykler | 52.403.796,85 USD |
Nordamerika | Tøj | 1.281.193,26 USD |
Nordamerika | Komponenter | 8.882.848,05 USD |
Stillehavet | Tilbehør | 12.769,57 USD |
Stillehavet | Cykler | 710.677,75 USD |
Stillehavet | Tøj | 22.902,38 USD |
Stillehavet | Komponenter | 108.549,71 USD |
Følgende formel opretter ovenstående tabel:
GENERATE(
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
,SUMMARIZE(ProductCategory
, [ProductCategoryName]
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
)
)
Den første SUMMARIZE sætning,
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
, opretter en tabel over områdegrupper, hvor hver række er en områdegruppe, som vist nedenfor:SalesTerritory[SalesTerritoryGroup] Nordamerika Europa Stillehavet NA Den anden SUMMARIZE sætning,
SUMMARIZE(ProductCategory, [ProductCategoryName], "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD]))
, opretter en tabel over produktkategorigrupper med Forhandlersalg for hver gruppe, som vist nedenfor:ProductCategory[ProductCategoryName] [Forhandlersalg] Cykler 63.084.675,04 USD Komponenter 11.205.837,96 USD Tøj 1.669.943,27 USD Tilbehør 534.301,99 USD Men når du tager ovenstående tabel og evaluerer den i konteksten for hver række fra tabellen med områdegrupper, får du forskellige resultater for hvert område.