這是我翻譯Chris Webb的文章,原文請查看http://spaces.msn.com/cwebbbi/blog/cns!7B84B0F2C239489A!710.entry?txtName=anchky&blogcs=end。主要介紹如何處理同時聚合多個計算成員!翻譯的不一定正確,如有疑問的請查看原文!???
?
??? 多時間維度(根據AS 2005,確切的說是關于時間的屬性層次)是非常有效的。我最初是從各種信息渠道介紹的
George Spofford
的《mdx解決方案》知道多時間維度的。并且
George Spofford
和他的書提供的技術已經成為普遍應用于多維數據集分析服務的設計技巧之一。而且更進一步地,多時間維度技巧已經成為《增加商業智能》向導一書的“設計時間智能”平臺的組成部分。
????
那么,這里頭又沒有什么新的東西值得介紹呢?很多時候,多時間維度就是比單時間維度高效。拿如下的mdx腳本舉例子,這個mdx是根據向導創建的,創建了單一時間維度
[Year-Month Period Calculations]
山的兩個計算成員
(Year-To-Date and Year-Over-Year Growth)
/*
? Begin Time Intelligence script for the [Period].[Year-Month] hierarchy.
*/
?
Create
Member
?
CurrentCube
.[Period].[Year-Month Period Calculations].[Year to Date]
?
As
"NA"
;
?
Create
Member
?
CurrentCube
.[Period].[Year-Month Period Calculations].[Year Over Year Growth]
?
As
"NA"
;? ?
Scope
(
?????? {
???????? [Measures].[Sales]
?????? }
) ;
?
// Year to Date
? (
??? [Period].[Year-Month Period Calculations].[Year to Date],
??? [Period].[Year].[Year].
Members
,
???? [Period].[Month].
Members
? ) =
?
Aggregate
(
???????????? { [Period].[Year-Month Period Calculations].
DefaultMember
} *
????????????
PeriodsToDate
(
??????????????????????????? [Period].[Year-Month].[Year],
??????????????????????????? [Period].[Year-Month].
CurrentMember
???????????? )
? ) ;
// Year Over Year Growth?
? (
???? [Period].[Year-Month Period Calculations].[Year Over Year Growth],
??? [Period].[Year].[Year].
Members
( 1 ) :
Null
,
???? [Period].[Month].
Members
? ) =?????
? ( [Period].[Year-Month Period Calculations].
DefaultMember
) -
? ( [Period].[Year-Month Period Calculations].
DefaultMember
,
???
ParallelPeriod
(
??????????????????? [Period].[Year-Month].[Year],
??????????????????? 1,
??????????????????? [Period].[Year-Month].
CurrentMember
??? )
? ) ;
?? (
??? [Period].[Year-Month Period Calculations].[Year Over Year Growth],
??? [Period].[Year].[Year].
Members
( 0 ),
??? [Period].[Month].
Members
? ) =
Null
;
?
End
Scope
;
?
/*
? End Time Intelligence script for the [Period].[Year-Month] hierarchy.*/
???
這樣做是高效的,但是當你的用戶要求能夠在
Year-To-Date
的數據上查看
Year-Over-Year
的增長趨勢的時候,我們該怎么辦?當然,你可以通過創建第三個計算成員來實現這個功能。然而我們很容易想到:當需求的計算聚合越多,我們創建一維持功能的計算成員數量就會越多。
???
而這些剛好是多用途的時間屬性層次可以解決的,因為多時間維度可以幫助你控制計算成員的爆發式增長———你可以讓多個計算成員集合在一起。首先,必須像創建初始時間屬性層次一樣通過拖拽列在時間維度上創建一個新的屬性層次。需要注意的是,要確保把是否聚集(
IsAggregatable
)屬性設置為
false
以免聚合所有成員。接下來要確定的是,哪個計算對應與哪個層次,當然該計算必須指向可用的計算聚合。如下的的mdx修改了上述的mdx,修改之后,兩個計算成員分別指向了兩個不同的屬性層次,這兩個層次分別是
[Period].[Year-Month Period Calculations]
和
[Period].[Year-Month Period Calculations2]
:
/*
? Begin Time Intelligence script for the [Period].[Year-Month] hierarchy.
*/
?
Create
Member
?
CurrentCube
.[Period].[Year-Month Period Calculations].[Year to Date]
?
As
"NA"
;
?
Create
Member
?
CurrentCube
.[Period].[Year-Month Period Calculations 2].[Year Over Year Growth]
?
As
"NA"
;
?
Scope
(
?????? {
???????? [Measures].[Sales]
?????? }
) ;
// Year to Date
? (
??? [Period].[Year-Month Period Calculations].[Year to Date],
??? [Period].[Year].[Year].
Members
,
???? [Period].[Month].
Members
? ) =
?
Aggregate
(
???????????? { [Period].[Year-Month Period Calculations].
DefaultMember
} *
????????????
PeriodsToDate
(
??????????????????????????? [Period].[Year-Month].[Year],
?????? ?????????????????????[Period].[Year-Month].
CurrentMember
???????????? )
? ) ;
// Year Over Year Growth?
? (
???? [Period].[Year-Month Period Calculations 2].[Year Over Year Growth],
??? [Period].[Year].[Year].
Members
( 1 ) :
Null
,
???? [Period].[Month].
Members
? ) =?????
?
? ( [Period].[Year-Month Period Calculations 2].
DefaultMember
) -
? ( [Period].[Year-Month Period Calculations 2].
DefaultMember
,
???
ParallelPeriod
(
??????????????????? [Period].[Year-Month].[Year],
??????????????????? 1,
???????????????? ???[Period].[Year-Month].
CurrentMember
??? )
? ) ;
?? (
??? [Period].[Year-Month Period Calculations 2].[Year Over Year Growth],
??? [Period].[Year].[Year].
Members
( 0 ),
??? [Period].[Month].
Members
? ) =
Null
;
?
End
Scope
;
/*
? End Time Intelligence script for the [Period].[Year-Month] hierarchy.
*/
????
這下用戶就可以通過交叉他們要求的兩個計算成員來實現通過
Year-To-Date
數據查看
Year-Over-Year Growth
,就跟單獨使用單個計算成員一樣。
凡是有該標志的文章,都是該blog博主Caoer(草兒)原創,凡是索引、收藏
、轉載請注明來處和原文作者。非常感謝。