Правильно агрегировать значения отношения один-ко-многим в SSAS - PullRequest
0 голосов
/ 23 ноября 2011

Итак, у меня есть база данных измерений для отгрузок:

Груз содержит много посылок. Пакет содержит много сборов.

Поскольку это размерные данные, а сборы - это данные, которые меня больше всего интересуют, я свел 3 таблицы и их отношения «многие к одному» в одну таблицу фактов платежей. Вот краткий снимок одной партии, которая содержит две упаковки, каждая весом 1 фунт.

enter image description here

Чтобы запросить вес упаковки, мне нужно было опустить ее до уровня заряда. Это вызывает проблемы с агрегацией. Вес упаковки 1 фунт применяется к каждой упаковке, и для перевозки должно быть 2 фунта. Я не могу найти способ агрегировать вес в качестве меры таким образом. Я очень новичок в SSAS и OLAP и не знаю, что дальше попробовать. Любые предложения будут с благодарностью.

1 Ответ

1 голос
/ 11 января 2012

Проблема в том, как вы моделируете данные. Самый низкий уровень детализации вашей (фактической) таблицы - это «сумма сбора» ... «вес упаковки» находится на более высоком уровне детализации (уровень пакета).

У вас есть два варианта ...

  1. В вашем ETL вы можете распределить 1 фунт по разным суммам оплаты для каждого пакета (см. Скриншот ниже). Таким образом, когда вы нарезаете эту таблицу фактов по отгрузке или упаковке, вы увидите 2 фунта или 1 фунт соответственно.

    screenshot

  2. Извлеките поле "Вес упаковки" из этой таблицы фактов и поместите его в поле, где степень детализации находится на уровне пакета.

...