На сервере sql я могу создать представление, соединяя две мои таблицы в поле datetime. Я хочу знать, как создать то же самое представление (таблицу), используя DAX. Оператор Select, который я использую при создании представления:
SELECT
T1.identifier_value,
T1.Start_DateTime,
T1.End_DateTime,
T2.[DateTime],
T2.[hour]
FROM
Table1 T1 WITH (NOLOCK)
right join Table2 T2 WITH (NOLOCK) on T2.[DateTime] between T1.Start_DateTime and T1.End_DateTime
В результате получается следующая таблица (в этом примере FakeID соответствует одному идентификатору, поэтому все записи здесь имеют одинаковый идентификатор):
Я пытался использовать NATURALLEFTOUTERJOIN в DAX и реверсировать таблицы (пытаясь смоделировать правое объединение) с помощью следующего выражения:
=NATURALLEFTOUTERJOIN(
SELECTCOLUMNS(
Table2;
"DateTime";'Table2'[DateTime];
"hour"; 'Table2'[hour]
);
SELECTCOLUMNS(
'Table1;
"Identifier_value"; 'Table1'[identifier_value];
"Start_DateTime"; 'Table1'[Start_DateTime];
"End_DateTime"; 'Table1'[End_DateTime]
)
)
Как и ожидалось, это не работает, потому что нет общего столбца соединения.
Есть ли способ выполнить это соединение, используя DAX? Я совершенно новичок в DAX, поэтому, если я делаю что-то ужасно неправильно, пожалуйста, дайте мне знать.