У меня есть расчетный показатель в службах Analysis Services, который возвращает среднесуточный доход для местоположения на основе последних трех периодов. Периоды - это промежутки времени, определяемые местоположением, поэтому одно местоположение может ежемесячно закрывать свои периоды, а другое - ежеквартально.
Чтобы вернуть среднесуточный доход, у меня есть таблица factPeriods, которая возвращает доход за период и количество дней, которые вносят вклад в период. Следующий MDX возвращает правильные значения на уровне местоположения ([Меры]. [Дни в AR-сборах]) / ([Меры]. [Дни в AR-днях]).
Проблема в том, что, когда я поднимаюсь до более высоких уровней, скажем, я хочу вернуть среднесуточный доход по штатам, вычисления неверны, потому что сначала агрегируются дни, составляющие периоды, а затем делятся. Я хочу, чтобы усреднение сначала происходило на самом низком уровне, а затем суммировало результаты среднесуточного дохода. Вот пример того, что происходит против того, что я хотел бы.
Скажем, у меня есть только два местоположения, A и B. A закрывается ежемесячно, B закрывается ежеквартально. Результаты последнего закрытия:
Местоположение / Доход / Дни, влияющие на доход
Местоположение A / $ 3000/30 дней
Местоположение B / $ 1800/90 дней
Местоположение А приносит доход в 100 долларов в день, Местоположение Б приносит доход всего в 20 долларов в день. Моя общая сумма должна составлять 120 долларов в день. Вместо этого он вернул бы 40 долларов в день. Вот что происходит на уровне расчета.
Я бы хотел, чтобы формула была в псевдокоде SUM (([Измерения]. [Дни в AR-сборах]) / ([Измерения]. [Дни в AR-днях]))
но это на самом деле дает мне (СУММА ([Измерения]. [Дни в AR сборов])) / (СУММ ([Измерения]. [Дни в AR дней]))
Может кто-нибудь помочь мне определить подходящую формулу, чтобы сделать эту работу по желанию? В итоге он должен составлять 100 долларов в день + 20 долларов в день, а не 4800 долларов в день. У меня есть подозрения, что мне, возможно, придется использовать потомков, но я не знаю точно, как бы я их использовал, или даже если это правильное направление.