2013-07-18 5 views
1

У меня есть данные о распределении затрат, которые в настоящее время полностью заполнены, по одной записи в день, каждая с одним ключом измерения стоимости. Куб имеет меру подсчета голов (данные установлены на «1»), а для агрегатной функции установлено значение «LastChild». Это означает, что отчет о подсчете голов будет считать человека только один раз в МВЗ в любой заданный период времени.«Средняя» совокупность малонаселенных процентных значений

Внедрение частичных распределений - новая мера будет иметь процентное значение для распределения, позволяя использовать несколько параллельных МВЗ, где распределение должно составлять до 100% (при этом «день» является гранулированным уровнем). Я пытаюсь выяснить, как настроить агрегацию в другие периоды времени. Я думал, что «Среднее» должно работать очень хорошо, т. Е. Лицо, которое будет выделено в МВЗ на уровне 50% за половину периода времени, будет сообщено на уровне 25% за этот период. Проблема, которую я вижу, заключается в том, что мои данные не заполняются в течение дней, когда распределение в МВЗ составляло 0%. Для иллюстрации:

Employee1 CostCenterA 1/1/2013 50% 
Employee1 CostCenterB 1/1/2013 50% 
Employee1 CostCenterA 1/2/2013 100% 
Employee1 CostCenterA 1/3/2013 100% 
... etc with 100% in CostCenterA for all days 

Приведенные выше данные по отчету месяца показывает 50% для распределения на CostCenterB, даже если человек был выделен только на один день, а средний процент ежемесячно должен быть 1,6% ,

Я полагаю, что я мог бы генерировать 0% -распределения данных, но моя таблица фактов в результате взорвалась бы, поэтому я бы скорее изменил, как «средняя» агрегация рассматривает процентные значения в малонаселенных фактах , т. е. среднее должно рассчитываться на основе количества гранулированных единиц за отчетный период (дней в месяце, в данном случае 0,5/31), а не количества строк в таблице фактов (0,5/1). Можно ли это сделать в SSAS?

ответ

2

Если мера со средним распределением отключена фактором, пропорциональным «разреженности» моих фактов, то есть соотношением дней в строке периода и фактического факта, тогда его можно исправить следующим образом:

adjusted average allocation = 
    (calculated average allocation) * (fact count)/(number of days in period) 

Я создал два новые скрытые меры, один с именем [Fact Count] для подсчета фактов (измерение с помощью агрегатной функции «Count») и расчетная мера по имени [дни в период Count] для числа дней, используя выражение

COUNT(Descendants([Date].[Calendar].CurrentMember,5),INCLUDEEMPTY) 

с [календарем], являющимся t он назвал иерархию в моем измерении Date.

Наконец, я добавил расчетную меру, которая реализует формулу: корректирующее

[Measures].[Allocative Head Count]/ 
(
    [Measures].[Days In Period Count]/[Measures].[Fact Count] 
) 

и назвали его [Скорректированная Средняя Allocation]. Это я теперь могу использовать в отчетах и, по-видимому, несколько приближается к среднему распределению МВЗ в течение более длительных периодов времени.

Форм-фактор для [количества дней в периоде] btw не работает для итогов строк при использовании фильтров. Для этого я открыл another question.

 Смежные вопросы

  • Нет связанных вопросов^_^