所有的例子中:month參數指向月粒度、year參數指向年粒度。日期階層為:年、季度、月、日
1. 去年同期:即查詢月為200905的話,該指標為200805該指標
total([金額] within set parallelPeriod([日期].[日期階層].[年],1,[日期].[日期階層].[月]->?mon?))
2. 本年累計:即查詢月為200905的話,該指標為200901-200905期間發生
total([金額] within set periodsToDate([日期].[日期階層].[年],[日期].[日期階層].[月]->?mon?))
3. 去年同期止累計:即查詢月為200905的話,該指標為200801-200805期間發生 total([金額] within set periodsToDate([日期].[日期階層].[年],parallelPeriod([日期].[日期階層].[年],1,[日期].[日期階層].[月]->?mon?))) |
同比增長 (以日期為行維)
([銷售金額]- value(tuple(parallelPeriod([ARPD-Sale].[日期].[日期].[年]),[銷售金額])))/ value(tuple(parallelPeriod([ARPD-Sale].[日期].[日期].[年]),[銷售金額]))
環比增長 (以日期為行維)
([銷售金額]-value(tuple(prevMember(currentMember([ARPD-Sale].[日期].[日期])),[銷售金額])))/value(tuple(prevMember(currentMember([ARPD-Sale].[日期].[日期])),[銷售金額]))4. 有史以來累計發生:查詢月為200805,則為從時間第一個節點截止200805期間發生
1)如果提示使用的是[日期].[日期階層].[月].[月 - Key]
total([金額] within set
filter(
members([日期].[日期階層].[月]),
[日期].[日期階層].[月].[月 - Key]<=?month?
))
2)如果提示使用的是[日期].[日期階層].[月]
total([金額] within set
lastperiods(1000,[日期].[日期階層].[月]->?month?))5. 查詢粒度為年,統計上半年、下半年
上半年餘額(即時點類指標):
total([餘額] within set subset(descendants([日期].[日期階層].[年]->?year?,[日期].[日期階層].[月]),5,1))
上半年發生額(即時段類指標):
total([金額] within set subset(descendants([日期].[日期階層].[年]->?year?,[日期].[日期階層].[月]),0,6))
這裡subset()這個函數和substring()類似,只不過subset截取的是一個set(集合)中的某些成員而已,並且注意subset()第一個是0而不是1,這個和數組是類似的.