Прежде всего, я написал следующее выражение Дакса, чтобы получить таблицу со списком клиентов, получивших более одного кредита.
VAR table_filter =
FILTER (
SUMMARIZE (
SUMMARIZE (
FACT_ACCOUNT;
FACT_ACCOUNT[ID_LOAN_INFORMATION];
FACT_ACCOUNT[ID_COSTUMER]
);
FACT_ACCOUNT[ID_COSTUMER];
"abc"; COUNTROWS (
SUMMARIZE (
FACT_ACCOUNT;
FACT_ACCOUNT[ID_LOAN_INFORMATION];
FACT_ACCOUNT[ID_COSTUMER]
)
)
);
[abc] > 1
)
На следующем рисунке представлен результат предыдущего выражения Dax table_filter.
Результат переменной table_filter
Далее я написал это выражение, чтобы получить столбец со списком ID_COSTUMER из предыдущей таблицы.
VAR column_filter =
SELECTCOLUMNS ( table_filter; "ClientYes"; FACT_ACCOUNT[ID_COSTUMER] )
Наконец, я использовал это выражение для создания вычисляемого столбца в таблице FACT_ACCOUNT, если я находил значение текущего ID_COSTUMER в column_filter, я ставил 1, иначе 0.
RETURN
IF (
CALCULATE (
COUNTROWS ( FACT_ACCOUNT );
FILTER (
FACT_ACCOUNT;
FACT_ACCOUNT[ID_COSTUMER] = EARLIER ( column_filter )
)
) > 0;
1;
0
)
Проблема в том, что результат column_filter не является столбцом. Мне нужно решение, чтобы вернуть столбец FACT_ACCOUNT[ID_COSTUMER] из результата первой отфильтрованной таблицы.
Я получил следующую ошибку: «первый аргумент более раннего/самого раннего не является допустимой ссылкой на столбец в более раннем контексте строки».