MDX函数的使 用.docx
- 文档编号:9072959
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:45
- 大小:30.64KB
MDX函数的使 用.docx
《MDX函数的使 用.docx》由会员分享,可在线阅读,更多相关《MDX函数的使 用.docx(45页珍藏版)》请在冰豆网上搜索。
MDX函数的使用
MDX函数列表
本主题包含Microsoft®SQLServer™AnalysisServices中多维度表达式(MDX)函数的列表。
可以使用这些列表按照返回值的分类来查找函数,或从目录的按字母排序列表中按名称选择函数。
示例中使用的样本
对于下列主题中的许多表达式示例,SampleSet的定义如下:
{USA,Buffalo,France,NYC,London,California,LA,Nice,UK,Paris}
下表列出该集合中每个成员的销售数据。
位置
1995年销售数据
1996年销售数据
UK
1900
1700
London
250
300
France
2500
2500
Paris
365
250
Nice
27
100
USA
5000
6500
Boston
900
1100
Buffalo
300
200
California
2000
3500
LosAngeles
500
900
MDX函数组
下表列出按返回值的分类进行分组的MDX函数。
可以使用表中的链接跳转到函数引用主题。
数组函数
函数
描述
SetToArray
将一个或多个集合转换为数组,以用于用户定义函数中。
维度函数、层次结构函数和级别函数
维度函数
函数
描述
Dimension
返回包含指定的层次结构、级别或成员的维度。
withmember[measures].[abc]as'[Time].currentmember.Dimension.name'
SELECT{[Time].&[1997]}ONCOLUMNS,{[Product].[AllProducts]}ONROWSFROM[Sales]WHERE([measures].[abc])
Dimensions
返回多维数据集中基于零的位置是由数值表达式指定的维度,或者其名称是由字符串指定的维度。
withmember[measures].[abc]as'Dimensions("[Time]").name'
SELECT{[Time].&[1997]}ONCOLUMNS,{[Product].[AllProducts]}ONROWSFROM[Sales]WHERE([measures].[abc])
层次结构函数
函数
描述
Hierarchy
返回级别或成员的层次结构。
级别函数
函数
描述
Level
返回成员的级别。
withmember[measures].[abc]as'[Time].&[1997].&[q1].level.name'
SELECT{[Time].&[1997]}ONCOLUMNS,{[Product].[AllProducts]}ONROWSFROM[Sales]WHERE([measures].[abc])
Levels
返回维度中其位置是由数值表达式指定的级别,或者其名称是由字符串表达式指定的级别。
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].[AllProducts]}ONROWSFROM[Sales]
WHERE([measures].[abc])
逻辑函数
函数
描述
Is
如果两个相比较的对象相等,则返回True,否则返回False。
withmember[measures].[abc]as'[time].currentmember.levelisquarter'
SELECT{[Time].allmembers}ONCOLUMNS,{[Product].[AllProducts]}ONROWSFROM[Sales]
WHERE([measures].[abc])
IsAncestor
确定指定的成员是否为另一个指定成员的祖先。
withmember[measures].[abc]as'IsAncestor([Time].CurrentMember,[Time].[1997].[Q2].[4])'
SELECT{[Time].allmembers}ONCOLUMNS,{[Product].[AllProducts]}ONROWSFROM[Sales]
WHERE([measures].[abc])
IsEmpty
确定表达式是否取值为空单元值。
withmember[measures].[abc]as'IsEmpty([Measures].[UnitSales])'
SELECT{DESCENDANTS([Time].&[1997],[Time].[Month])*{[measures].[abc],[Measures].[UnitSales]}}ONCOLUMNS,{DESCENDANTS([Product].[ProductFamily].&[Food],[Product].[ProductName])}ONROWSFROM[Sales]
IsGeneration
确定指定成员是否位于指定的代中。
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}ONROWSFROM[Sales]
IsLeaf
确定指定成员是否为叶成员。
withmember[measures].[a1]as'IsLeaf([Time].CurrentMember)'
SELECT{[measures].[a1]}ONCOLUMNS,{[Time].allmembers}ONROWSFROM[Sales]
IsSibling
确定指定成员是否为另一个指定成员的兄弟。
withmember[measures].[a1]as'IsSibling([Time].currentmember.prevmember,[Time].currentmember)'
SELECT{[measures].[a1]}ONCOLUMNS,{[Time].allmembers}ONROWSFROM[Sales]
成员函数
函数
描述
Ancestor
返回指定级别或距成员指定距离的成员的祖先。
withmember[measures].[a1]as'Ancestor([Time].currentmember,1).name'
SELECT{[measures].[a1]}ONCOLUMNS,{[Time].allmembers}ONROWSFROM[Sales]
ClosingPeriod
返回成员在一个级别上的后代中的最后一个兄弟。
withmember[measures].[a1]as'ClosingPeriod([Time].[Month],[Time].currentmember).name'
SELECT{[measures].[a1]}ONCOLUMNS,{[Time].allmembers}ONROWSFROM[Sales]
Cousin
返回成员下方与指定的成员具有相同的相对位置的成员。
withmember[measures].[a1]as'Cousin([time].currentmember,[time].[1998]).uniquename'
SELECT{[measures].[a1]}ONCOLUMNS,{[Time].allmembers}ONROWSFROM[Sales]
CurrentMember
返回迭代过程中维度上的当前成员。
withmember[measures].[a1]as'[time].currentmember.uniquename'
SELECT{[measures].[a1]}ONCOLUMNS,{[Time].allmembers}ONROWSFROM[Sales]
DataMember
返回与非叶成员关联的系统生成的数据成员。
1
withmember[measures].[a1]as'([time].currentmember.datamember,[Measures].[StoreSales])'
SELECT{[measures].[a1]}ONCOLUMNS,{[Time].allmembers}ONROWSFROM[Sales]
2
withmember[measures].[a1]as'([Employees].currentmember.datamember,[Measures].[OrgSalary])'
SELECT{[Time].allmembers*{[measures].[a1],[Measures].[OrgSalary]}}ONCOLUMNS,
{[Employees].allmembers}ONROWS
FROM[HR]
备注:
当非叶子节点存在相应的数据库里的记录,那么会显示数据库里该节点自己对应的值,如果不存在相应的数据库里的记录,那么会显示聚合出来的值;
DefaultMember
返回维度或层次结构的默认成员。
withmember[measures].[a1]as'[time].DefaultMember.name'
SELECT{[measures].[a1]}ONCOLUMNS,{[Time].allmembers}ONROWSFROM[Sales]
FirstChild
返回成员的第一个子代。
withmember[measures].[a1]as'[time].currentmember.firstchild.name'
SELECT{[measures].[a1]}ONCOLUMNS,{[Time].allmembers}ONROWSFROM[Sales]
FirstSibling
返回成员的父代的第一个子代。
withmember[measures].[a1]as'[time].currentmember.FirstSibling.name'
SELECT{[measures].[a1]}ONCOLUMNS,{[Time].allmembers}ONROWSFROM[Sales]
Ignore
保留。
Item
从元组中返回成员。
withmember[measures].[a1]as'{time.currentmember.children}.Item(0).item(0).name'
SELECT{[measures].[a1]}ONCOLUMNS,{[Time].allmembers}ONROWSFROM[Sales]
Lag
返回指定成员的维度上的上一个成员。
withmember[measures].[a1]as'time.currentmember.lag
(1).name'
SELECT{[measures].[a1]}ONCOLUMNS,{[Time].allmembers}ONROWSFROM[Sales]
LastChild
返回成员的最后一个子代。
withmember[measures].[a1]as'time.currentmember.lastchild.name'
SELECT{[measures].[a1]}ONCOLUMNS,{[Time].allmembers}ONROWSFROM[Sales]
LastSibling
返回成员的父代的最后一个子代。
withmember[measures].[a1]as'time.currentmember.LastSibling.name'
SELECT{[measures].[a1]}ONCOLUMNS,{[Time].allmembers}ONROWSFROM[Sales]
Lead
返回指定成员的维度上后面的成员。
withmember[measures].[a1]as'time.currentmember.Lead
(1).name'
SELECT{[measures].[a1]}ONCOLUMNS,{[Time].allmembers}ONROWSFROM[Sales]
LinkMember
返回按层次结构排列的成员。
withmember[measures].[a1]as'LinkMember([time].[1997].[q1].[1],其它时间维度名称)'
SELECT{[measures].[a1]}ONCOLUMNS,{[Time].allmembers}ONROWSFROM[Sales]
Members
返回其名称由字符串表达式指定的成员。
withmember[measures].[a1]as'111'
SELECT{[measures].[a1]}ONCOLUMNS,{[Time].members}ONROWSFROM[Sales]
NextMember
返回指定成员所在级别的下一个成员。
withmember[measures].[a1]as'time.currentmember.nextmember.name'
SELECT{[measures].[a1]}ONCOLUMNS,{[Time].members}ONROWSFROM[Sales]
OpeningPeriod
返回某一级别上成员的后代中的第一个兄弟。
withmember[measures].[a1]as'OpeningPeriod(Month,time.currentmember).name'
SELECT{[measures].[a1]}ONCOLUMNS,{[Time].members}ONROWSFROM[Sales]
ParallelPeriod
返回上一时期中与指定成员具有相同的相对位置的成员。
1
withmember[measures].[a1]as'ParallelPeriod(Year).uniquename'
SELECT{[measures].[a1]}ONCOLUMNS,{[Time].members}ONROWSFROM[Sales]
2
withmember[measures].[a1]as'ParallelPeriod(Year,1,time.currentmember).uniquename'
SELECT{[measures].[a1]}ONCOLUMNS,{[Time].members}ONROWSFROM[Sales]
3
withmember[measures].[a1]as'ParallelPeriod(month,1,time.currentmember).uniquename'
SELECT{[measures].[a1]}ONCOLUMNS,{[Time].members}ONROWSFROM[Sales]
Parent
返回成员的父代。
withmember[measures].[a1]as'time.currentmember.parent.uniquename'
SELECT{[measures].[a1]}ONCOLUMNS,{[Time].members}ONROWSFROM[Sales]
PrevMember
返回指定成员所在级别的上一个成员。
withmember[measures].[a1]as'time.currentmember.PrevMember.uniquename'
SELECT{[measures].[a1]}ONCOLUMNS,{[Time].members}ONROWSFROM[Sales]
StrToMember
根据字符串表达式返回成员。
withmember[measures].[a1]as'strtomember(time.currentmember.uniquename).uniquename'
SELECT{[measures].[a1]}ONCOLUMNS,{[Time].members}ONROWSFROM[Sales]
ValidMeasure
通过将不适用的维度强制到其顶层,来返回虚拟多维数据集中的有效度量值。
withmembermeasures.[abc]as'ValidMeasure([Measures].[WarehouseSales])'
SELECT{measures.[abc],[Measures].[StoreSales],[Measures].[WarehouseSales]}ONCOLUMNS,
{DESCENDANTS([Customers].[StateProvince].&[CA].&[Altadena],[Customers].[Name])}ONROWSFROM[WarehouseandSales]
数值函数
函数
描述
Aggregate
返回根据查询的上下文,用适当的聚合函数计算所得的值。
WITHMEMBERstore.TotalAS'AGGREGATE({[Store].[AllStores].[USA].[CA],[Store].[AllStores].[USA].[OR]})'
SELECT{Measures.[storesales],Measures.MaxSales}ONCOLUMNS,
{[Store].[AllStores].[USA].[CA],[Store].[AllStores].[USA].[OR],Total}ONROWS
FROMSales
比较
WITHMEMBERstore.TotalAS'sum({[Store].[AllStores].[USA].[CA],[Store].[AllStores].[USA].[OR]})'
SELECT{Measures.[storesales],Measures.MaxSales}ONCOLUMNS,
{[Store].[AllStores].[USA].[CA],[Store].[AllStores].[USA].[OR],Total}ONROWS
FROMSales
Avg
返回在某一集合上对数值表达式求得的平均值。
WITHMEMBERstore.TotalAS'Avg({[Store].[AllStores].[USA].[CA],[Store].[AllStores].[USA].[OR]})'
SELECT{Measures.[storesales],Measures.MaxSales}ONCOLUMNS,
{[Store].[AllStores].[USA].[CA],[Store].[AllStores].[USA].[OR],Total}ONROWS
FROMSales
CalculationCurrentPass
针对当前查询上下文返回多维数据集的当前计算传递。
withmember[Time].[1997].[Q2-Q1]as'[Time].[1997].[Q2]-[Time].[1997].[Q1]',SOLVE_ORDER=1
SELECT{{Filter
({{[Time].[1997].[Q1],[Time].[1997].[Q2],[Time].[1997].[Q2-Q1]}}*{
[Measures].[SalesAverage]},
([Time].[1997].[Q1],[Measures].[StoreSales])>0)}}
ONCOLUMNS,{[Store].[StoreCountry].members}ONROWSFROMSales
比较如果不加,SOLVE_ORDER=1会怎样?
CalculationPassValue
返回在当前多维数据集的指定计算传递上对MDX表达式求得的值。
CoalesceEmpty
将空单元值合并为数字或字符串。
withmember[Measures].[abc]as'iif(CoalesceEmpty([Measures].[StoreSales],1)=1,"空的","不空的")',SOLVE_ORDER=1
SELECT{{{[Time].[1997].[Q1],[Time].[1997].[Q2]}}*{
[Measures].[StoreSales],[Measures].[abc]}}
ONCOLUMNS,{[Store].[
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MDX函数的使 MDX 函数