Добрый вечер, коллеги)
Вводная: у меня есть матрица, в строках которой находятся поля "Поставщик" из Suppliers и "Товар" из Products (см. кусок модели данных). В значениях таблицы я считаю кол-во купленных товаров (из таблицы SupplyGoods) и кол-во продаж (таблица FactSales), совершенных в периоды, на которые закупки рассчитывались.
Постановка задачи: в матрице иерархия Поставщик->Товар. На уровне товаров все считается легко, т.к. и id товара, и id поставщика прекрасно залетают в контекст вычисления. Однако на уровне поставщика все ломается, т.к. его id нативно до таблицы FactSales не долетает, и кол-во продаж считается некорректно (по всем товарам, а не только по тем, у которых что-то есть в SupplyGoods).
Мое решение: я сейчас "прокидываю" фильтр по товарам при помощи переменной VAR products_filter = VALUES(SupplyGoods[dwh_product_id]) и CALCULATE( SUM(...), products_filter, CROSSFILTER(SupplyGoods[dwh_product_id], Products[dwh_product_id], Both).
Внимание, вопрос: мера считается довольно быстро даже на большом кол-ве данных, НО может я уже заработался и не вижу очевидного и простого решения (помимо "не париться и оставить как есть")? 🙂