(отредактировано для ясности) Я новичок в DAX и в табличной форме, и столкнулся с проблемой
У нас есть табличная модель с несколькими таблицами фактов, разделяющими некоторые измерения.
Теперь нашпроблема заключается в том, что стоимость одного факта должна рассчитываться на основе стоимости другой таблицы с использованием отношения заказа.
Идея состоит в том, что стоимость DBM является правильной, но стоимость в Adform может бытьиз другого канала, и в этом случае мы должны использовать стоимость из Adform.
Поэтому нам нужно проверить, есть ли связанная с этим цена DBM, связанная с заказами.
У нас есть:
Adform Fact
Adform ID, Order Id, Impressions, Cost
1 , 1 , 100 , 50
2 , 2 , 200 , 68
3 , 2 , 200 , 100
4 , 3 , 200 , 100
5 , -1 , 600 , 300
DBM Fact
DBM ID, Order Id, Impressions, Cost
1 , 1 , 50 , 25
2 , 1 , 20 , 10
3 , 1 , 10 , 10
4 , 2 , 60 , 100
5 , 2 , 80 , 75
6 , -1 , 500 , 1000
И размер заказа
Order Id, Order Name
1 , "Campaign 1"
2 , "Campaign 2"
3 , "Campaign 3"
-1 , "Unknown Order"
Теперь нам нужно сделать следующее.
Стоимость должна быть взята из стоимости Adform, если только тот же заказ не связан с ценой в таблице DBM.В этом случае стоимость должна быть рассчитана как сумма стоимости из DBM, отфильтрованной по общим измерениям.
Я пробовал это:
CALCULATE(if(and(COUNTROWS('AdForm')>0,[Cost (DBM)]>0) ,[Cost (DBM)],[Cost (AdForm)]))
Это работает, как и ожидалось, когда я развернут назаказы.Однако это происходит только на агрегированном уровне, поэтому, когда я углубляюсь в другие распространенные измерения, такие как Дата или Клиент, я просто получаю сумму стоимости DBM в качестве стоимости.
Что я хотел бы получитьявляется суммой стоимости DBM всех заказов, где есть стоимость DBM, и для всех других заказов, чтобы получить стоимость Adform.