Как применить фильтр на основе текущей строки - PullRequest
0 голосов
/ 21 февраля 2020

Я строю вычисляемый столбец, который должен суммировать все строки в одной и той же таблице, которые имеют несколько общих свойств и имеют большее значение даты.

Я знаю, что мне нужно использовать метод вычисления, чтобы разбить фильтровать контекст, но я не уверен, как ссылаться на вычисляемую строку по сравнению с таблицей с тем же именем внутри функции вычисления. В Sql это будет сделано как самостоятельное соединение с двумя разными псевдонимами для одной и той же таблицы. Что такое эквивалент DAX?

SQL псевдокод:

select
t1.Name
,sum(t2.a)
from table t1
inner join table t2 on t1.b = t2.b
    and t1.c < t2.c
group by t1.name

DAX (как правильно ссылаться на внешнюю строку по сравнению с внутренней таблицей?):

calculate(sum(table[a]), 
        filter(all(table), table[b] = table[b])
)

1 Ответ

0 голосов
/ 26 февраля 2020

Как предполагает @RADO, более ранняя функция делает это (но вы можете не догадываться об этом по названию!).

Используя мой предыдущий пример, это выглядит так:

calculate(sum(table[a]), 
    filter(all(table), table[b] = earlier(table[b]))
)
...