У меня есть три таблицы, одна тусклая таблица, называемая «ISO_ccy», показывающая только аббревиатуры валют ISO, одна тусклая таблица, показывающая «домашнюю валюту» сущности («сущности»), а другая таблица (факт) («сделки»)) показывает валютные (FX) сделки.Что касается сделок с иностранной валютой, то они всегда включают две валюты (ccy), поэтому в последней таблице есть два столбца с кодами ISO валют (и соответствующими суммами).Обе таблицы затемнения имеют только один столбец с кодами ISO ccy (таблица "ISO_ccy", имеющая только различные значения).
Теперь у меня есть одно (активное) отношение для валюты 1 (ccy1) и одно неактивное для валюты 2 (ccy2) между таблицей "ISO_ccy" и "trades".Существует также активная связь между таблицами "ISO_ccy" и "entity".
Мне нужно рассчитать сумму для каждой валюты и каждой сущности, где валюта не равна "домашней валюте" этой сущности.
Кажется довольно простым для ccy с активными отношениями (ccy1):
Sum_Hedges_activeRelation:=
CALCULATE(
SUM([Amount_ccy1]);
FILTER(trades;trades[ccy1]>LOOKUPVALUE(entities[ccy];entities[name];trades[name]))
)
Выражение фильтра гарантирует, что показываются только суммы, если ccy сделки не равенв "домашний" город.
Здесь я получаю желаемый результат.
Теперь мне нужно сделать то же самое с неактивным отношением (ccy2).
Вот что я пробовал:
Sum_Hedges_in-activeRelation:=
CALCULATE(
SUM([Amount_ccy2]);
USERELATIONSHIP(trades[ccy2];ISO_ccy[ccy]);
FILTER(trades;trades[ccy2]<>LOOKUPVALUE(entities[ccy];entities[name];trades[name]))
)
Однако я получаю только «пустой» результат.
Я также пытался добавить "ВСЕ (сделки)" в функцию РАСЧЕТ.Там тоже нет результатов.
Итак, я немного растерялся, как я могу заставить эту работу.Можете ли вы помочь?