MDX 函數的使用介紹(一)

根據SqlServer2000 Analysis Services提供的幫助材料展開,略作說明並且根據各個函數的側重點編寫相應的MDX;這些成果主要源於我的老大浩哥,再次向他表示感謝。

函數
描述
將一個或多個集合轉換爲數組,以用於用戶定義函數中。
 
 
 
維度函數
函數
描述
返回包含指定的層次結構、級別或成員的維度。
 
withmember [measures].[abc] as '[Time].currentmember.Dimension.name'
SELECT { [Time].&[1997] } ONCOLUMNS , { [Product].[All Products] } ONROWS FROM [Sales] WHERE ( [measures].[abc])
返回多維數據集中基於零的位置是由數值表達式指定的維度,或者其名稱是由字符串指定的維度。
 
withmember [measures].[abc] as 'Dimensions("[Time]").name'
SELECT { [Time].&[1997] } ONCOLUMNS , { [Product].[All Products] } ONROWS FROM [Sales] WHERE ( [measures].[abc])
 
層次結構函數
函數
描述
返回級別或成員的層次結構。
 
 
 
級別函數
函數
描述
返回成員的級別。
 
withmember [measures].[abc] as ' [Time].&[1997].&[q1].level.name'
SELECT { [Time].&[1997] } ONCOLUMNS , { [Product].[All Products] } ONROWS FROM [Sales] WHERE ( [measures].[abc])
返回維度中其位置是由數值表達式指定的級別,或者其名稱是由字符串表達式指定的級別。
 
withmember [measures].[abc] as 'Levels([time].currentmember.level.name).name'
 SELECT { [Time].&[1997], [Time].&[1997].&[Q1], [Time].&[1997].&[Q1].&[1], [Time].&[1997].&[Q1].&[2], [Time].&[1997].&[Q1].&[3] } ONCOLUMNS , { [Product].[All Products] } ONROWS FROM [Sales]
 WHERE ( [measures].[abc])
 
函數
描述
如果兩個相比較的對象相等,則返回 True,否則返回 False。
 
withmember [measures].[abc] as '[time].currentmember.levelisquarter'
 SELECT { [Time].allmembers} ONCOLUMNS , { [Product].[All Products] } ONROWS FROM [Sales]
 WHERE ( [measures].[abc])
確定指定的成員是否爲另一個指定成員的祖先。
 
withmember [measures].[abc] as 'IsAncestor([Time].CurrentMember, [Time].[1997].[Q2].[4])'
 SELECT { [Time].allmembers} ONCOLUMNS , { [Product].[All Products] } ONROWS FROM [Sales]
 WHERE ( [measures].[abc])
確定表達式是否取值爲空單元值。
 
withmember [measures].[abc] as ' IsEmpty([Measures].[Unit Sales]) '
SELECTDESCENDANTS( [Time].&[1997], [Time].[Month] )*{[measures].[abc],[Measures].[Unit Sales]} } ONCOLUMNS , { DESCENDANTS( [Product].[Product Family].&[Food], [Product].[Product Name] ) } ONROWS FROM [Sales]
確定指定成員是否位於指定的代中。
 
withmember [measures].[a1] as ' IsGeneration([Time].CurrentMember,0) '
 member [measures].[a2] as ' IsGeneration([Time].CurrentMember,1) '
 member [measures].[a3] as ' IsGeneration([Time].CurrentMember,2) '
SELECT {[measures].[a1],[measures].[a2],[measures].[a3]} ONCOLUMNS , { [Time].allmembers } ONROWS FROM [Sales]
確定指定成員是否爲葉成員。
 
withmember [measures].[a1] as ' IsLeaf([Time].CurrentMember) '  
SELECT {[measures].[a1] } ONCOLUMNS , { [Time].allmembers } ONROWS FROM [Sales] 
確定指定成員是否爲另一個指定成員的兄弟。
 
withmember [measures].[a1] as ' IsSibling([Time].currentmember.prevmember,[Time].currentmember)'  
SELECT {[measures].[a1] } ONCOLUMNS , { [Time].allmembers } ONROWS FROM [Sales] 
 
函數
描述
返回指定級別或距成員指定距離的成員的祖先。
 
withmember [measures].[a1] as 'Ancestor([Time].currentmember, 1).name'  
SELECT {[measures].[a1] } ONCOLUMNS , { [Time].allmembers } ONROWS FROM [Sales] 
返回成員在一個級別上的後代中的最後一個兄弟。
 
withmember [measures].[a1] as 'ClosingPeriod( [Time].[Month], [Time].currentmember) .name'  
SELECT {[measures].[a1] } ONCOLUMNS , { [Time].allmembers } ONROWS FROM [Sales] 
返回成員下方與指定的成員具有相同的相對位置的成員。
 
withmember [measures].[a1] as 'Cousin([time].currentmember, [time].[1998] ).uniquename'  
SELECT {[measures].[a1] } ONCOLUMNS , { [Time].allmembers } ONROWS FROM [Sales] 
返回迭代過程中維度上的當前成員。
 
withmember [measures].[a1] as ' [time].currentmember.uniquename'  
SELECT {[measures].[a1] } ONCOLUMNS , { [Time].allmembers } ONROWS FROM [Sales] 
返回與非葉成員關聯的系統生成的數據成員。
1
withmember [measures].[a1] as ' ([time].currentmember.datamember, [Measures].[Store Sales])'  
SELECT {[measures].[a1] } ONCOLUMNS , { [Time].allmembers } ONROWS FROM [Sales] 
2
withmember [measures].[a1] as ' ([Employees].currentmember.datamember, [Measures].[Org Salary])'  
SELECT { [Time].allmembers*{[measures].[a1],[Measures].[Org Salary]} } ONCOLUMNS ,
 { [Employees].allmembers } ONROWS
 FROM [HR] 
備註:
當非葉子節點存在相應的數據庫裏的記錄,那麼會顯示數據庫裏該節點自己對應的值,如果不存在相應的數據庫裏的記錄,那麼會顯示聚合出來的值;
返回維度或層次結構的默認成員。
 
withmember [measures].[a1] as ' [time].DefaultMember.name '  
SELECT {[measures].[a1] } ONCOLUMNS , { [Time].allmembers } ONROWS FROM [Sales]
返回成員的第一個子代。
 
withmember [measures].[a1] as ' [time].currentmember.firstchild.name '  
SELECT {[measures].[a1] } ONCOLUMNS , { [Time].allmembers } ONROWS FROM [Sales]
返回成員的父代的第一個子代。
 
withmember [measures].[a1] as ' [time].currentmember.FirstSibling.name '  
SELECT {[measures].[a1] } ONCOLUMNS , { [Time].allmembers } ONROWS FROM [Sales]
保留。
 
 
從元組中返回成員。
 
withmember [measures].[a1] as '{time.currentmember.children}.Item(0).item(0).name'  
SELECT {[measures].[a1] } ONCOLUMNS , { [Time].allmembers } ONROWS FROM [Sales]
返回指定成員的維度上的上一個成員。
 
withmember [measures].[a1] as 'time.currentmember.lag(1).name'  
SELECT {[measures].[a1] } ONCOLUMNS , { [Time].allmembers } ONROWS FROM [Sales]
返回成員的最後一個子代。
 
withmember [measures].[a1] as 'time.currentmember.lastchild.name'  
SELECT {[measures].[a1] } ONCOLUMNS , { [Time].allmembers } ONROWS FROM [Sales]
返回成員的父代的最後一個子代。
 
withmember [measures].[a1] as 'time.currentmember.LastSibling.name'  
SELECT {[measures].[a1] } ONCOLUMNS , { [Time].allmembers } ONROWS FROM [Sales]
返回指定成員的維度上後面的成員。
 
withmember [measures].[a1] as 'time.currentmember.Lead(1).name'  
SELECT {[measures].[a1] } ONCOLUMNS , { [Time].allmembers } ONROWS FROM [Sales]
返回按層次結構排列的成員。
 
withmember [measures].[a1] as 'LinkMember([time].[1997].[q1].[1], 其它時間維度名稱)'  
SELECT {[measures].[a1] } ONCOLUMNS , { [Time].allmembers } ONROWS FROM [Sales]
返回其名稱由字符串表達式指定的成員。
 
withmember [measures].[a1] as '111'  
SELECT {[measures].[a1] } ONCOLUMNS, { [Time].members } ONROWS FROM [Sales]
返回指定成員所在級別的下一個成員。
 
withmember [measures].[a1] as 'time.currentmember.nextmember.name'  
SELECT {[measures].[a1] } ONCOLUMNS, { [Time].members } ONROWS FROM [Sales]
返回某一級別上成員的後代中的第一個兄弟。
 
withmember [measures].[a1] as 'OpeningPeriod(Month, time.currentmember).name '  
SELECT {[measures].[a1] } ONCOLUMNS, { [Time].members } ONROWS FROM [Sales]
返回上一時期中與指定成員具有相同的相對位置的成員。
1
withmember [measures].[a1] as 'ParallelPeriod(Year).uniquename '  
SELECT {[measures].[a1] } ONCOLUMNS, { [Time].members } ONROWS FROM [Sales]
2
withmember [measures].[a1] as 'ParallelPeriod(Year,1,time.currentmember).uniquename '  
SELECT {[measures].[a1] } ONCOLUMNS, { [Time].members } ONROWS FROM [Sales]
3
withmember [measures].[a1] as 'ParallelPeriod(month,1,time.currentmember).uniquename '  
SELECT {[measures].[a1] } ONCOLUMNS, { [Time].members } ONROWS FROM [Sales]
返回成員的父代。
 
withmember [measures].[a1] as ' time.currentmember.parent.uniquename '  
SELECT {[measures].[a1] } ONCOLUMNS, { [Time].members } ONROWS FROM [Sales]
返回指定成員所在級別的上一個成員。
 
withmember [measures].[a1] as ' time.currentmember.PrevMember.uniquename '  
SELECT {[measures].[a1] } ONCOLUMNS, { [Time].members } ONROWS FROM [Sales]
根據字符串表達式返回成員。
 
withmember [measures].[a1] as ' strtomember(time.currentmember.uniquename).uniquename '  
SELECT {[measures].[a1] } ONCOLUMNS, { [Time].members } ONROWS FROM [Sales]
通過將不適用的維度強制到其頂層,來返回虛擬多維數據集中的有效度量值。
 
withmember measures.[abc] as '   ValidMeasure([Measures].[Warehouse Sales]) '
 SELECT {measures.[abc],[Measures].[Store Sales],[Measures].[Warehouse Sales] } ONCOLUMNS ,
{DESCENDANTS( [Customers].[State Province].&[CA].&[Altadena], [Customers].[Name] ) } ONROWS FROM [Warehouse and Sales]
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章