GENERATEALL
применяется:вычисляемый столбец
вычисляемой таблицы
измерение
визуального вычисления
Возвращает таблицу с декартовским продуктом между каждой строкой в таблице1 и таблицей, которая приводит к оценке таблицы 2 в контексте текущей строки из таблицы 1.
Синтаксис
GENERATEALL(<table1>, <table2>)
Параметры
Срок | Определение |
---|---|
table1 |
Любое выражение DAX, возвращающее таблицу. |
table2 |
Любое выражение DAX, возвращающее таблицу. |
Возвращаемое значение
Таблица с декартовским продуктом между каждой строкой в таблице1 и таблицей, которая приводит к оценке таблицы 2 в контексте текущей строки из таблицы 1
Замечания
Если оценка таблицы 2 для текущей строки в таблице1 возвращает пустую таблицу, то текущая строка из таблицы 1 будет включена в результаты и столбцы, соответствующие таблице 2 будут иметь значения NULL для этой строки. Это отличается от GENERATE(), где текущая строка из таблицы 1 будет не быть включена в результаты.
Все имена столбцов из таблицы 1 и таблицы 2 должны отличаться или возвращается ошибка.
Эта функция не поддерживается для использования в режиме DirectQuery при использовании в вычисляемых столбцах или правилах безопасности на уровне строк (RLS).
Пример
В следующем примере пользователь хочет сводную таблицу продаж по регионам и категории продуктов для канала торговых посредников, например следующую таблицу:
SalesTerritory[SalesTerritoryGroup] | ProductCategory[ProductCategoryName] | [Продажи торговых посредников] |
---|---|---|
Европа | Принадлежности | $ 142,227,27 |
Европа | Велосипеды | $ 9,970,200,44 |
Европа | Одежда | $ 365,847,63 |
Европа | Компоненты | $ 2,214,440,19 |
NA | Принадлежности | |
NA | Велосипеды | |
NA | Одежда | |
NA | Компоненты | |
Северная Америка | Принадлежности | $ 379,305,15 |
Северная Америка | Велосипеды | $ 52,403,796,85 |
Северная Америка | Одежда | $ 1,281,193,26 |
Северная Америка | Компоненты | $ 8,882,848,05 |
Тихоокеанский | Принадлежности | $ 12,769,57 |
Тихоокеанский | Велосипеды | $ 710,677,75 |
Тихоокеанский | Одежда | $ 22,902,38 |
Тихоокеанский | Компоненты | $ 108,549,71 |
Следующая формула создает приведенную выше таблицу:
GENERATEALL(
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
,SUMMARIZE(ProductCategory
, [ProductCategoryName]
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
)
)
Первая SUMMARIZE создает таблицу групп территорий, где каждая строка — это группа территорий, например перечисленные ниже:
SalesTerritory[SalesTerritoryGroup] Северная Америка Европа Тихоокеанский NA Второй SUMMARIZE создает таблицу групп категорий продуктов с продажами торгового посредника для каждой группы, как показано ниже:
ProductCategory[ProductCategoryName] [Продажи торговых посредников] Велосипеды $ 63,084,675,04 Компоненты $ 11,205,837,96 Одежда $ 1,669,943,27 Принадлежности $ 534,301,99 Однако при получении приведенной выше таблицы и оценке таблицы в контексте каждой строки из таблицы групп территорий вы получите разные результаты для каждой территории.