Накопленная сумма (прогрессивная сумма) - PullRequest
0 голосов
/ 04 декабря 2011

У меня есть куб с измерением CreatedOn (тип времени) и мерой IssueOpened. Мне нужно получить накопительную сумму для IssueOpened.

Например:

2009  IssueOpened=7   OpenedOnTheEndOfPeriod=7
2010  IssueOpened=12  OpenedOnTheEndOfPeriod=19
2011  IssueOpened=2   OpenedOnTheEndOfPeriod=21

Итак, я создал вычисляемый элемент:

sum([CreatedOn].[Y-Q-M].currentmember.level.members(0):[CreatedOn].[Y-Q-M].currentmember.prevmember, Measures.[IssueOpened])

enter image description here

Но похоже, что это не работает так, как я хочу. Начало измерения:

enter image description here

И это похоже на правду в конце измерения:

enter image description here

Может быть ошибка первого элемента измерения времени? Что мне нужно исправить, чтобы получить желаемый результат?

1 Ответ

1 голос
/ 05 декабря 2011

Вы когда-нибудь просматривали http://www.ssas -info.com / analysis-services-article / 62-design / 367-инвентаризация-управление-вычисления-в-sql-сервер-анализ-услуги-2005-by -Ричард-Ткачук . Это необходимо прочитать, если вы хотите попробовать что-либо подобное.

Для расчета промежуточного итога вы должны использовать такой член:

set Q as Nonempty( Order( [CreatedOn].[Y-Q-M].Members,[Measures].[IssueOpened], ASC ) 
                         ,[Measures].[IssueOpened] )

Member [Measures].[RunningTotal] as Sum(
    Head( Q, ( [Measures].[Level], [CreatedOn].[Y-Q-M].CurrentMember ) )
   ,[Measures].[IssueOpened] )
...