1.ParallelPeriod
--ParallelPeriod with member [Measures].[a1] As 'ParAllelPeriod(Year,2,[時間].[月].&[2011]&[12])' select ParAllelPeriod([時間].[月].&[2011]&[10].level,1,[時間].[月].&[2011]&[10]) on columns, [Measures].[會員人數] on rows from [BSUSYS_New]
2.Topcount
select [Measures].[會員人數] on 0, topcount([時間].[月].[月],5,[Measures].[會員人數]) on 1 from [BSUSYS_New]
3.bottomcount
select [Measures].[會員人數] on 0, bottomcount([時間].[月].[月],5,[Measures].[會員人數]) on 1 from [BSUSYS_New]
4.Toppercent(這些元素的累積合計至少為指定的百分比即指定月份的會員人數總和至少是總會員人數的50%)
select [Measures].[會員人數] on 0, Toppercent([時間].[月].[月],50,[Measures].[會員人數]) on 1 from [BSUSYS_New]
5.bottompercent
select [Measures].[會員人數] on 0, bottompercent([時間].[月].[月],50,[Measures].[會員人數]) on 1 from [BSUSYS_New]
6.TOPSUM(這些月份的累計會員>=1600000)
select [Measures].[會員人數] on 0, TOPSUM([時間].[月].[月],1600000,[Measures].[會員人數]) on 1 from [BSUSYS_New]
7.BOTTOMSUM
select [Measures].[會員人數] on 0, BOTTOMSUM([時間].[月].[月],500,[Measures].[會員人數]) on 1 from [BSUSYS_New]
8.Filter
select [Measures].[會員人數] on 0, filter([時間].[月].[月],[Measures].[會員人數]>100000) on 1 from [BSUSYS_New]
9.generate(將集合應用到另一集合的每個成員)
--Generate 最常見的實際用法是為一組成員計算復雜集表達式,如 TopCount。 select [Measures].[會員人數] on 0, generate ([時間].[年].[年].members, TOPcount([時間].[年].currentmember*[會員 - 注冊門店].[省].[省].members,2,[Measures].[會員人數])) on 1 from [BSUSYS_New] /*將年份跟會員人數排名前2名的省份的集進行簡單交叉聯接將 顯示所有時間的前2個省份(每年都重復),而不是每年的前兩名省份*/ select [Measures].[會員人數] on 0, [時間].[年].[年].members*TOPcount([會員 - 注冊門店].[省].[省].members,2,[Measures].[會員人數]) on 1 from [BSUSYS_New] --以下示例說明如何使用 Generate 返回字符串: with member MEASURES.GENERATESTRINGDEMO AS generate ([時間].[年].[年].members,[時間].[年].currentmember.name) member MEASURES.GENERATEDELIMITEDSTRINGDEMO AS generate ([時間].[年].[年].members,[時間].[年].currentmember.name," and ") select {MEASURES.GENERATESTRINGDEMO,MEASURES.GENERATEDELIMITEDSTRINGDEMO }on 0 from [BSUSYS_New]
10.Descendants(Descendants 函數中的成員和級別必須屬於同一層次結構)
select [Measures].[訂單數] on 0, descendants([創建時間].[年季月層次].[年].&[2011],[創建時間].[年季月層次].[月],SELF) on 1 from YHDJBLMDataDW
11.Ancestor(在同一層次結構才行)
WITH MEMBER Measures.x AS [Measures]. [Measures].[商品小票數]/ ( [Measures].[Measures].[商品小票數], Ancestor ( [商品].[舊品類層次].CurrentMember, [商品].[舊品類層次].[舊大品類] ) ), FORMAT_STRING = '0%' SELECT {[Measures].[商品小票數], Measures.x} ON 0, { Descendants ( [商品].[舊品類層次].[舊大品類].&[糖果類], [商品].[舊品類層次].[舊小品類], SELF ) } ON 1 FROM [YHD_NEW]
12.RANK
WITH MEMBER [Measures].[Rank] AS Rank( [商品].[舊品類層次].CurrentMember, [商品].[舊品類層次].CurrentMember.Siblings, ([Measures].[商品小票數]) ) SELECT { [Measures].[商品小票數], [Measures].[Rank] } ON COLUMNS, order ({[商品].[舊品類層次].[舊大品類].Members} ,[Measures].[Rank] ,asc)ON ROWS FROM [YHD_NEW]
13.IsLeaf
WITH MEMBER [Measures].[ss] AS IIF( IsLeaf([商品].[舊品類層次].CurrentMember), "N/A", COUNT( [商品].[舊品類層次].CurrentMember.Children ) ) SELECT {[Measures].[ss]} ON COLUMNS, {[商品].[舊品類層次].[舊小品類].Members} ON ROWS FROM [YHD_NEW]
14.OpeningPeriod/ClosingPeriod
SELECT OpeningPeriod ([時間].[日歷層次].[月],[時間].[日歷層次].[年].&[2010]) ON 0, [Measures].[商品小票數] on 1 FROM [YHD_NEW] SELECT ClosingPeriod ([時間].[日歷層次].[季度],[時間].[日歷層次].[年].&[2010]) ON 0, [Measures].[商品小票數] on 1 FROM [YHD_NEW]
15.AGGREGATE
with member [商品].[aa] AS AGGREGATE({[商品].[舊品類層次].[舊大品類].&[NULL], [商品].[舊品類層次].[舊大品類].&[N元系列], [商品].[舊品類層次].[舊大品類].&[車用產品], [商品].[舊品類層次].[舊大品類].&[寵物專用]}) SELECT [商品].[aa] ON COLUMNS, [Measures].[商品小票數] on ROWS FROM [YHD_NEW]
16.VisualTotals
with member [aa] AS VISUALTOTALS( { [商品].[舊品類層次].[All], [商品].[舊品類層次].[舊大品類].&[NULL], [商品].[舊品類層次].[舊大品類].&[N元系列], [商品].[舊品類層次].[舊大品類].&[車用產品], [商品].[舊品類層次].[舊大品類].&[寵物專用] } ) SELECT {[Measures].[不重復商品小票數]} ON COLUMNS, [aa] ON ROWS FROM [YHD_NEW] CELL PROPERTIES VALUE, FORMATTED_VALUE, FORE_COLOR, BACK_COLOR SELECT [Measures].[商品小票數] ON Columns, VisualTotals ({[商品].[舊大品類].[ALL] ,[商品].[舊大品類].&[NULL] ,[商品].[舊大品類].&[N元系列] } , '* - Visual Total' ) ON Rows FROM [YHD_NEW] SELECT {[Measures].[商品小票數],[Measures].[不重復商品小票數], [Measures].[不重復滲透率]} ON Columns, VisualTotals({[商品].[舊大品類].[ALL] ,[商品].[舊大品類].&[NULL] ,[商品].[舊大品類].&[N元系列] }) ON Rows FROM [YHD_NEW]
17.DrilldownLevel
SELECT {[Measures].[商品小票數], [Measures].[滲透率], [Measures].[不重復商品小票數]} ON COLUMNS , {DrilldownLevel({[商品].[舊品類層次].[All]})} ON ROWS FROM ( SELECT ({[商品].[舊品類層次].[舊大品類].&[寵物專用], [商品].[舊品類層次].[舊大品類].&[車用產品], [商品].[舊品類層次].[舊大品類].&[N元系列], [商品].[舊品類層次].[舊大品類].&[NULL]}) ON COLUMNS FROM [YHD_NEW] )
18.雜項
/*instr*/ SELECT [Measures].[積金幣次數] ON 0, FILTER([產品].[產品名].CHILDREN, INSTR([產品].[產品名].CURRENTMEMBER.NAME,'西王')>0 and INSTR([產品].[產品名].CURRENTMEMBER.NAME,'玉米')>0) ON 1 FROM [YHDJBLMDataDW] /*rank*/ with set [aa] as filter (order (([產品].[產品名].children,[金幣聯盟會員].[省].children) ,[Measures].[積金幣次數],bdesc),[Measures].[積金幣次數]>10000) member [Measures].[bb] as rank(([產品].[產品名].currentmember,[金幣聯盟會員].[省].currentmember),[aa]) select {[Measures].[bb],[Measures].[積金幣次數]} on 0, [aa] on 1 from [YHDJBLMDataDW] /*lastperiods和lastchild*/ with set [aa] as filter(order(lastperiods(4,[創建時間].[季度].&[2012]&[1]) ,[Measures].[積金幣次數],desc) ,[Measures].[積金幣次數]>0) member [Measures].[bb] as rank(([創建時間].[季度].currentmember),[aa]) select {[Measures].[bb],[Measures].[積金幣次數]} on 0, [aa] on 1 from [YHDJBLMDataDW] /*head 和tail*/ with set [top10province] as tail(topcount([產品].[產品名].children*[金幣聯盟會員].[省].children,10, [Measures].[積金幣次數]),5) select [Measures].[積金幣次數] on 0, [top10province] on 1 from [YHDJBLMDataDW] /*children/sibling/parent*/ select [Measures].[積金幣次數] on 0, filter([產品].[產品層次]. [商家].&[shengyuan].&[58優博]. &[08版新優博2段900g聽裝較大嬰兒配方奶粉].siblings,[Measures].[積金幣次數]>10000) on 1 from [YHDJBLMDataDW] select [Measures].[積金幣次數] on 0, [產品].[產品層次]. [商家].&[shengyuan].&[58優博]. &[08版新優博2段900g聽裝較大嬰兒配方奶粉].parent on 1 from [YHDJBLMDataDW] /*Descendants/ancestors/ascendants*/ select [Measures].[積金幣次數] on 0, order(filter(Descendants([產品].[產品層次].[商家].&[shengyuan].&[58優博], [產品].[產品層次].[產品名],self_and_before),[Measures].[積金幣次數]>150000),[Measures].[積金幣次數],desc) on 1 from [YHDJBLMDataDW] select [Measures].[積金幣次數] on 0, order(filter(ancestors([產品].[產品層次].[商家].&[shengyuan]. &[58優博].&[10版優博4段400g盒裝奶粉], [產品].[產品層次].[商家]),[Measures].[積金幣次數]>150000),[Measures].[積金幣次數],desc) on 1 from [YHDJBLMDataDW] select [Measures].[積金幣次數] on 0, ascendants([產品].[產品層次].[商家].&[shengyuan].&[58優博])on 1 from [YHDJBLMDataDW] /*hierarchize 整理回層次結構的正常順序*/ select [Measures].[積金幣次數] on 0, hierarchize(union(ascendants([產品].[產品層次].[商家].&[shengyuan].&[58優博]), Descendants([產品].[產品層次].[商家].&[shengyuan].&[58優博], [產品].[產品層次].[產品名],self_and_before))) on 1 from [YHDJBLMDataDW] select [Measures].[積金幣次數] on 0, [產品].[產品層次].[商家].&[shengyuan].firstchild.parent.children on 1 from [YHDJBLMDataDW] /*openingperiod/closingperiod*/ with member [firstmonth] as ([Measures].[積金幣次數] ,closingperiod([創建時間].[年季月層次].[月],[創建時間].[年季月層次])) select {[firstmonth],[Measures].[積金幣次數]} on 0, [產品].[產品層次].[商家].&[shengyuan].children having [Measures].[積金幣次數]>10000 and [firstmonth]>6028 on 1 from [YHDJBLMDataDW] where [創建時間].[年季月層次].[年].&[2011]
19.前12個月有積金幣次數的情況,且倒序排列
with set [lastmonth] as tail(filter([創建時間].[月].[月],[Measures].[積金幣次數]),1) set [last12months] as order(lastperiods(12,[lastmonth].item(0).item(0)), [創建時間].[月].currentmember.properties("Key0") +VBA!Right([創建時間].[月].currentmember.properties("Key1"),2),desc) select [Measures].[積金幣次數] on 0, [last12months] on 1 from [YHDJBLMDataDW] select [Measures].[積金幣次數] on 0, Mtd([創建時間].[月].&[2012]&[5])on 1 from [YHDJBLMDataDW]
先這些吧,以后再慢慢添加。
