MDX-запрос между фактом и таблицей измерений - PullRequest
0 голосов
/ 22 октября 2019

У меня есть куб в SSAS, он имеет разные измерения и одну таблицу фактов. одним из измерений является dimGoodsType с атрибутом [weight]. У меня есть factSoldItems, у которого есть [цена] мера. Теперь я хочу вычислить эту сумму (цена * вес) (каждый проданный элемент имеет свой dimGoodsTypeId, поэтому его вес связан с GoodsType). Как определить эту формулу в MDX?

1 Ответ

0 голосов
/ 22 октября 2019

Можно определить другую группу мер в кубе с помощью dimGoodsType в качестве таблицы источника данных и столбца «Вес» в качестве меры и, как обычно, связать ее с измерением «Тип товара». Затем на вкладке свойств меры Price вы можете установить Measure Expression как [Measures].[Price] * [Measures].[Weight]. Этот расчет будет выполнен до агрегирования. Основная проблема заключается в том, что если вы определите прямой расчет как Price * Weight, SSAS сначала суммирует все веса и суммирует все цены в контексте текущей ячейки, и только после этого он будет выполнять умножение, но вы всегда хотите выполнитьумножение на уровне листьев и суммировать оттуда.

Другим решением может быть создание view_factSoldItems, где вы добавите вычисляемый столбец Weighted Price как price * weight, а затем добавите эту меру в куб.

...