GENERATE
Van toepassing op:berekende kolom
berekende tabel
Meting
Visuele berekening
Retourneert een tabel met het Cartesische product tussen elke rij in tabel1 en de tabel die het resultaat is van het evalueren van tabel2 in de context van de huidige rij uit tabel1.
Syntaxis
GENERATE(<table1>, <table2>)
Parameters
Term | Definitie |
---|---|
table1 |
Elke DAX-expressie die een tabel retourneert. |
table2 |
Elke DAX-expressie die een tabel retourneert. |
Retourwaarde
Een tabel met het Cartesische product tussen elke rij in tabel1 en de tabel die het resultaat is van het evalueren van tabel2 in de context van de huidige rij uit tabel1
Opmerkingen
Als de evaluatie van tabel2 voor de huidige rij in tabel1 een lege tabel retourneert, bevat de resultaattabel niet de huidige rij uit tabel1. Dit is anders dan GENERATEALL() waarbij de huidige rij van tabel1 wordt opgenomen in de resultaten en kolommen die overeenkomen met tabel2 null-waarden voor die rij hebben.
Alle kolomnamen uit tabel1 en tabel2 moeten afwijken of er wordt een fout geretourneerd.
Deze functie wordt niet ondersteund voor gebruik in de DirectQuery-modus wanneer deze wordt gebruikt in regels voor beveiliging op rijniveau (berekende kolommen of beveiliging op rijniveau).
Voorbeeld
In het volgende voorbeeld wil de gebruiker een overzichtstabel van de verkoop per regio en productcategorie voor het kanaal Resellers, zoals in de volgende tabel:
SalesTerritory[SalesTerritoryGroup] | ProductCategory[ProductCategoryName] | [Reseller Sales] |
---|---|---|
Europa | Accessoires | $ 142,227,27 |
Europa | Fietsen | $ 9.970.200,44 |
Europa | Kleding | $ 365.847,63 |
Europa | Onderdelen | $ 2.214.440,19 |
Noord-Amerika | Accessoires | $ 379,305,15 |
Noord-Amerika | Fietsen | $ 52.403.796,85 |
Noord-Amerika | Kleding | $ 1.281.193,26 |
Noord-Amerika | Onderdelen | $ 8.882.848,05 |
Stille Oceaan | Accessoires | $ 12.769,57 |
Stille Oceaan | Fietsen | $ 710.677,75 |
Stille Oceaan | Kleding | $ 22.902,38 |
Stille Oceaan | Onderdelen | $ 108.549,71 |
De volgende formule produceert de bovenstaande tabel:
GENERATE(
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
,SUMMARIZE(ProductCategory
, [ProductCategoryName]
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
)
)
De eerste SUMMARIZE-instructie,
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
, produceert een tabel met gebiedsgroepen, waarbij elke rij een gebiedsgroep is, zoals hieronder wordt weergegeven:SalesTerritory[SalesTerritoryGroup] Noord-Amerika Europa Stille Oceaan NA De tweede SUMMARIZE-instructie,
SUMMARIZE(ProductCategory, [ProductCategoryName], "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD]))
, produceert een tabel met productcategoriegroepen met de verkoop van wederverkopers voor elke groep, zoals hieronder wordt weergegeven:ProductCategory[ProductCategoryName] [Reseller Sales] Fietsen $ 63.084.675,04 Onderdelen $ 11.205.837,96 Kleding $ 1.669.943,27 Accessoires $ 534.301,99 Wanneer u echter de bovenstaande tabel gebruikt en evalueert onder de context van elke rij uit de tabel gebiedsgroepen, krijgt u verschillende resultaten voor elk gebied.