GENERATE
傳回資料表,其中包含下列兩個資料表中每個資料列之間的笛卡兒乘積:table1,以及在 table1 的目前資料列內容中評估 table2 所產生資料表。
語法
GENERATE(<table1>, <table2>)
參數
詞彙 | 定義 |
---|---|
table1 | 傳回資料表的所有 DAX 運算式。 |
table2 | 傳回資料表的所有 DAX 運算式。 |
傳回值
資料表,其中包含下列兩個資料表中每個資料列之間的笛卡兒乘積:table1,以及在 table1 的目前資料列內容中評估 table2 所產生資料表
備註
如果針對 table1 中的目前資料列評估 table2 傳回空白資料表,則結果資料表不會包含 table1 中的目前資料列。 這與 GENERATEALL() 不同,在此函式,table1 中的目前資料列會包含在結果中,且對應至 table2 的資料行針對該資料列具有 null 值。
table1 和 table2 中的所有資料行名稱都必須不同,否則會傳回錯誤。
在計算結果欄或資料列層級安全性 (RLS) 規則中使用時,不支援在 DirectQuery 模式中使用此函式。
範例
在下列範例中,使用者想要依「轉銷商」通路的「區域」和「產品類別」列出的銷售摘要資料表,如下表所示:
SalesTerritory[SalesTerritoryGroup] | ProductCategory[ProductCategoryName] | [轉銷商銷售額] |
---|---|---|
歐洲 | 配件 | $ 142,227.27 |
歐洲 | Bikes | $ 9,970,200.44 |
歐洲 | Clothing | $ 365,847.63 |
歐洲 | 元件 | $ 2,214,440.19 |
北美洲 | 配件 | $ 379,305.15 |
北美洲 | Bikes | $ 52,403,796.85 |
北美洲 | Clothing | $ 1,281,193.26 |
北美洲 | 元件 | $ 8,882,848.05 |
太平洋 | 配件 | $ 12,769.57 |
太平洋 | Bikes | $ 710,677.75 |
太平洋 | Clothing | $ 22,902.38 |
太平洋 | 元件 | $ 108,549.71 |
下列公式會產生上述資料表:
GENERATE(
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
,SUMMARIZE(ProductCategory
, [ProductCategoryName]
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
)
)
第一個 SUMMARIZE 陳述式
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
會產生領域群組資料表,其中每個資料列都是領域群組,如下所示:。SalesTerritory[SalesTerritoryGroup] 北美洲 歐洲 太平洋 NA 第二個 SUMMARIZE 陳述式
SUMMARIZE(ProductCategory, [ProductCategoryName], "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD]))
會產生產品類別群組資料表,以及每個群組的轉銷商銷售額,如下所示:ProductCategory[ProductCategoryName] [轉銷商銷售額] Bikes $ 63,084,675.04 元件 $ 11,205,837.96 Clothing $ 1,669,943.27 配件 $ 534,301.99 不過,當您擷取上述資料表並根據領域群組資料表中的每個資料列內容來評估資料表時,針對每個領域會取得不同的結果。