Я пытаюсь отфильтровать SUMMARIZECOLUMNS с помощью CALCULATETABLE, мне выдается сообщение об ошибке:
"SummarizeColumns не может иметь внешний контекст фильтра"
Это из-за версии SSAS, моя версия: 13.0.2213.0
EVALUATE
CALCULATETABLE(
SUMMARIZECOLUMNS(
'Product'[Model Name],
'Product'[Product Line],
'Product'[Product Name],
'Customer'[First Name],
'Customer'[Last Name],
"Internet Current Quarter Sales", [Internet Current Quarter Sales],
"Internet Total Sales", [Internet Total Sales]
),
'Internet Sales'[Order Date] > DATEVALUE("1 Jan 2011"),
OR('Geography'[Country Region Name] = "Australia", 'Geography'[Country Region Name] = "United States")
)
ORDER BY 'Product'[Model Name]
Я могу фильтровать, поместив функцию FILTER в SUMMARIZECOLUMNS, однако это дало мне другой результат (меньше записей, чем ожидается), поскольку таблица была отфильтрована перед соединением corss: https://docs.microsoft.com/en-us/dax/summarizecolumns-function-dax
EVALUATE
SUMMARIZECOLUMNS(
'Product'[Model Name],
'Product'[Product Line],
'Product'[Product Name],
'Customer'[First Name],
'Customer'[Last Name],
FILTER('Internet Sales', [Order Date] > DATEVALUE("1 Jan 2011")),
FILTER('Geography', [Country Region Name] = "Australia" || [Country Region Name] = "United States"),
"Internet Current Quarter Sales", [Internet Current Quarter Sales],
"Internet Total Sales", [Internet Total Sales]
)
ORDER BY 'Product'[Model Name]
filterTable: выражение таблицы, которое добавляется в контекст фильтра всех столбцы, указанные в качестве аргументов groupBy_columnName. Значения, представленные в таблице фильтров, используются для фильтрации перед выполнением перекрестного соединения / автоматического существования.
Есть идеи, как добиться фильтра, аналогичного функции CALCULATETABLE? Спасибо.