IBM Cognos BI 最佳实践: IBM Cognos 8 维度函数参考指南
1 简介
1.1 目的
本文档提供了有关 Report Studio for IBM Cognos 8 中的维度函数(dimensional function )的详细内容和示例。
1.2 适用范围
本文档列出的技巧和产品行为适用于:
- IBM Cognos 8 8.4.27.26-0 ,使用来自样例的 IBM Cognos Great Outdoor Sales ( 多维数据集 ) 。
2 背景资料
下图是著名户外品牌 PowerCube 公司的产品空间的示例结构,展示了 Camping Equipment Product Line 的产品成员。这个产品空间将作为许多后续示例的基础。
3 函数定义
3.1 ancestor
语法:
ancestor ( member, level | integer )
描述:
返回指定成员的位于指定(指定名称)级别的祖先,或者返回位于该成员指定数量的级别之上的祖先。
注意:在存在多个祖先的情况下不能保证结果的一致性。
示例:
ancestor([TrailChef Water Bag], 1) 结果:Cooking Gear
ancestor([TrailChef Water Bag], 2) 结果:Camping Equipment
ancestor([TrailChef Water Bag],[g reat_outdoors_com pany] . [Products]. [Products]. [Product type]) 结果:Cooking Gear
3.2 ancestors
语法:
ancestors ( member, level | integer )
描述:
返回一个成员的位于指定级别的所有祖先,或者是与该成员具有指定距离的所有祖先。(大多数数据源支持一个特定级别只有一个祖先,但是有些数据源支持多个祖先。因此结果是一个成员集)
示例:
ancestors([TrailChef Water Bag], 1) 结果:Cooking Gear
ancestors([TrailChef Water Bag], 2) 结果:Camping Equipment
ancestors([TrailChef Water Bag],[g reat_outdoors_com pany] . [Products]. [Products]. [Product type]) 结果:Cooking Gear
3.3 bottomCount
语法:
bottomCount ( set_exp , index_exp , numeric_exp )
描述:
该函数根据 "numeric_expression" 对每个 "set_exp" 成员计算的值对集合排序,并返回最底部的 "index_exp" 成员。
示例:
根据使用 [2006] 交集(intersection)和默认度量 [Revenue] 的交叉表报表确定 numeric_exp。
bottomCount(set([Cam ping Equi pment],[Golf Equipment],[Mountaineering Equipment]),2,[2006])
结果:
基于一个列表报表,对 numeric_exp 使用了 [Revenue] 度量的直接引用。
bottomCount([great_outdoors_com pany] . [Products]. [Products]. [Produ ct line],2,[Revenue])
结果:
Outdoor Protection $3,171,114.92
Mountaineering Equipment $20,891,350.60
3.4 bottomPercent
语法:
bottomPercent ( set_exp , numeric_exp1 , numeric_exp2 )
描述:
该函数类似于 bottomSum ,但是阈值为总数的 "numeric_exp1" 个百分比。
numeric_exp1 的范围为从 0 到 100 。
示例:
基于一个交叉表报表
bottomPercent(set([Camping Equipment],[Golf Equipment],[Mountaineering Equipment]),40,[2006])
对于 Camping Equipment 集合,Golf Equipment 和 Mountaineering Equipment 在元组 2006 中返回其总百分比大于或等于 40% 的成员。
结果:
bottomPercent(set([Camping Equipment],[Golf Equipment],[Mountaineering Equipment]),20,tuple([2006],[great_outdoors_company] . [Measures]. [ Gross profit]))
结果:
3.5 bottomSum
语法:
bottomSum ( set_exp , numeric_exp1 , numeric_exp2 )
描述:
该函数将对 "numeric_exp2" 排序(后者对相应的 "set_exp" 成员进行计算),并选择其累计总数至少为“numeric_exp1 ”的最底层的元素。
示例:
基于一个交叉表报表
bottomSum(members([great_outdoors_company] . [Products]. [Products].[Product line]), 6000000, tuple([2006],[great_outdoors_company] . [Measures]. [Gross profit]))
结果:
3.6 caption
语法:
caption ( level | member | set_exp )
描述:
返回指定元素的标题值。
标题是元素的字符串显示名,并且不需要匹配用于生成元素的业务键或惟一成员名的惟一标识符。标题不需要具有惟一性。月份的标题可能会返回月份名,而不会返回限定这一个值的年份信息。
示例:
caption([TrailChef Water Bag]) 结果:TrailChef Water Bag
caption([great_outdoors_company] . [Products]. [Products]. [Product line])
结果:
Camping Equipment Mountaineering Equipment Personal Accessories Outdoor Protection Golf Equipment
3.7 children
语法:
children ( member )
描述:
返回指定成员的子集合。
示例:
children([Camping Equipment])
结果:
Cooking Gear Tents Sleeping Bags Packs Lanterns
3.8 closingPeriod
语法:
closingPeriod ( level [, member ] )
描述:
返回位于某个指定级别的成员的后代中的最后一个兄弟节点。通常与时间维度结合使用。
示例:
closingPeriod([great_outdoors_company] . [Years]. [Years]. [Month]) 结果:2006/Dec
closingPeriod([great_outdoors_company] . [Years]. [Years]. [Year]) 结果:2006
closingPeriod([great_outdoors_company] .[Years] . [Years] .[Month],[20 06 Q 4]) 结果:2006/Dec
3.9 completeTuple
语法:
completeTuple ( member { , member } )
描述:
类似于 "tuple" ,根据指定的成员识别 cell 位置(交集),每个成员必须来自不同的维度。然而,completetuple 隐含了来自所有维度的默认成员(没有以其他方式指定),而不是包含当前的成员。这个 cell 的值可以被包含到 "value" 函数中。
示例:
下面的第一列使用表达式: completetuple([Mountaineering Equipment],[Fax])
第二列使用一个更精确的表达式:
completetuple([Mountaineering Equipment],[Fax],[Quantity sold],currentMember([g reat_outdoors_com pany] . [Years]. [Years]))
结果:
completetuple 并没有像 tuple 函数那样默认选择 currentMember 。第一列的值对于每一年都是相同的,因为使用的是 Years 维度的默认成员 root member ,而不是当前成员。同样,第一列显示的是 Revenue 而不是 Quantity Sold ,因为 Revenue 度量是来自 Measures 维度的默认值。如果 completetuple 函数中没有定义 currentMeasure 的话,Completetuple 将在查询中使用默认度量而不是 currentMeasure 。
以上输出的第二列指定 completetuple 函数将使用 Years 维度的 currentMember 以及 Quanityt sold 度量。这与下面用于 Tuple 函数的示例相同,其中默认选择了 currentMember 和 currentMeasure 。
3.10 cousin
语法:
cousin ( member1 , member2 )
描述:
返回成员 2 的子成员,该子成员在其父成员下具有与成员 1 相同的相对位置。
示例:
cousin([Irons],[Camping Equipment]) 结果:Cooking Gear
cousin([Putters],[Camping Equipment]) 结果:Sleeping Bags
3.11 currentMember
语法:
currentMember ( hierarchy )
描述:
在一次迭代期间返回层次结构中的当前成员。如果在计算表达式的上下文中没有给出指定的层次结构,那么将假设一个默认成员。
示例:
currentMember([great_outdoors_com pany] . [Products]. [Products])
结果:
3.12 defaultMember
语法:
defaultMember ( hierarchy )
描述:
返回层次结构的默认成员。
示例:
defaultMember([great_outdoors_company] .[Products] . [Products]) 结果:Products
defaultMember([great_outdoors_company] . [Years]. [Years]) 结果:Years
defaultMember(hierarchy([great_outdoors_company] . [Measures]. [Quantity sold]))
结果:Revenue
结果:
3.13 descendants
语法:
descendants(set_expr,level|index[,{self|before|beforewithmember|after}])
描述:
返回一组成员的位于指定级别或与根具有指定距离的后代集,可以包含或排除位于其他级别的后代。将从集合中移除相同的成员。
示例:
注意:[great_outdoors_company]. [Products]. [Products]. [Products] 是 Products 层次结构的根成员。
descendants([Member], [Level]) 或 descendants([Member], [Level], self)
descendants([great_outdoors_com pany] . [Products]. [Products]. [Products],[great_outdoors_company] . [Products]. [Products]. [Product type])
结果:
Cooking Gear Sleeping Bags Packs Tents ... First Aid Insect Repellents Sunscreen Binoculars Navigation Eyewear Knives Watches
descendants([Member], <distance>)
descendants([great_outdoors_company] . [Products]. [Products]. [Products], 1)
结果:
Camping Equipment Golf Equipment Mountaineering Equipment Outdoor Protection Personal Accessories
descendants([Member], <distance>, before)
descendants([great_outdoors_company] . [Products]. [Products]. [Products], 3, before)
结果:
Camping Equipment Cooking Gear Sleeping Bags Packs Tents Lanterns Golf Equipment Irons Putters Woods Golf Accessories Mountaineering Equipment Climbing Accessories Tools Rope Safety Outdoor Protection First Aid Insect Repellents Sunscreen Personal Accessories Binoculars Navigation Eyewear Knives Watches
descendants([great_outdoors_company] . [Products]. [Products]. [Products], 2, self before)
结果:
Camping Equipment Cooking Gear Sleeping Bags Packs Tents Lanterns Golf Equipment Irons Putters Woods Golf Accessories Mountaineering Equipment Climbing Accessories Tools Rope Safety Outdoor Protection First Aid Insect Repellents Sunscreen Personal Accessories Binoculars Navigation Eyewear Knives Watches
3.14 emptySet
语法:
emptySet ( hierarchy )
描述:
返回指定层次结构的空成员集合。这通常在开发中被作为占位符使用,或者结合使用动态报表设计(利用 SDK 或报表设计)。通过创建包含 emptyset 函数的数据項,可以构建一个复杂的表达式,稍后可以通过重新定义 emptyset 数据項来修改此表达式。
示例:
except([great_outdoors_company] . [Products]. [Products]. [Product line],emptyset([great_outdoors_company] . [Products]. [Products]))
结果:
Camping Equipment Golf Equipment Mountaineering Equipment Outdoor Protection Personal Accessories
3.15 except
语法:
except ( set_exp 1 , set_exp2 [,ALL] )
描述:
返回 "set_exp1" 中未出现在 "set_exp2" 中的成员。只有在可选的关键字 ALL 被作为第三个参数提供时,才会保留相同的成员。
示例:
except(set([Camping Equipment],[Mountaineering Equipment]), set([Camping Equipment],[Golf Equipment]))
结果:Mountaineering Equipment
3.16 filter
语法:
filter ( set_exp , boolean_exp )
描述:
返回根据 boolean 条件对指定集合执行过滤后的结果集。当且仅当“boolean_exp ”
的对应值为 true 时才会在结果中包含每一个成员。
示例:
源数据:
表达式 <#High Margin Product Lines#> : filter([Product line], [Gross margin] > .30)
结果:
源数据:
表达式:
filter([Product line], tuple([Gross margin], [2006]) > .30) 结果:
3.17 firstChild
语法:
firstChild ( member)
描述:
返回某个成员的第一个子成员。
示例:
firstChild([By Product Lines]) 结果:Camping Equipment
firstChild([Camping Equipment]) 结果:Cooking Gear
3.18 firstSibling
语法:
firstSibling ( member )
描述:
返回某成员的父成员的第一个子成员。
示例:
firstSibling ([Outdoor Protection]) 结果:Camping Equipment
firstSibling ([Camping Equipment]) 结果:Camping Equipment
3.19 generate
语法:
generate ( set_exp1 , set_exp2 [ , ALL ] )
描述:
该函数将针对 "set_exp1" 的每个成员计算 "set_exp2" ,并通过使用合并(union )连接结果集。如果指定了 ALL ,那么将在结果中保留相同的值。
示例:
以下示例按照收入计算了每个产品线排在前两位的产品。
generate([Product line], topCount( descendants( currentMember( [great_outdoors_company]. [Products]. [Products]), [great_outdoors_company] .[Products] . [Products]. [Product name] ), 2, [Revenue]))
结果:
3.20 head
语法:
head ( set_exp [ , index_exp ] )
描述:
返回 "set_exp" 的第一个 "index_exp" 元素。默认 "index_exp" 为 1 。
示例:
head(members([great_outdoors_company] . [Products]. [Products]. [Product line]))
结果:Camping Equipment
head(members([great_outdoors_company] . [Products]. [Products]. [Product line]),2)
结果:Camping Equipment
Mountaineering Equipment
3.21 hierarchize
语法:
hierarchize ( set_exp )
描述:
此函数对层次结构中的某个集合的成员进行排序。同一级别的成员将根据其自然顺序排序,当没有指定其他排序条件时,这将作为维度成员的默认排序法。
示例:
hierarchize(set([Golf Equipment],[Mountaineering Equipment],[Camping Equipment]))
结果:
3.22 hierarchy
语法:
hierarchy ( level | member | set_exp )
描述:
返回包含指定级别、指定成员或成员集合的层次结构。
示例:
hierarchy([Cooking Gear])
结果:(包含 Cooking Gear 的层次结构中的每一个成员)
Products Camping Equipment Cooking Gear TrailChef Water Bag TrailChef Canteen TrailChef Deluxe Cook Set TrailChef Double Flame TrailChef Kettle TrailChef Kitchen Kit TrailChef Cup TrailChef Cook Set TrailChef Single Flame TrailChef Utensils Sleeping Bags Hibernator Extreme ... Mountain Man Analog Mountain Man Digital Mountain Man Combination Mountain Man Extreme Mountain Man Deluxe
hierarchy([great_outdoors_company] . [Products]. [Products]. [Product line])
结果:(包含该产品线的层次结构中的每一个成员)
Products Camping Equipment Cooking Gear TrailChef Water Bag TrailChef Canteen TrailChef Deluxe Cook Set TrailChef Double Flame TrailChef Kettle TrailChef Kitchen Kit TrailChef Cup TrailChef Cook Set TrailChef Single Flame TrailChef Utensils Sleeping Bags Hibernator Extreme ... Mountain Man Analog Mountain Man Digital Mountain Man Combination Mountain Man Extreme Mountain Man Deluxe
3.23 item
语法:
item ( set_exp , index )
描述:
返回集合内来自指定位置的成员。该集合的索引从 0 开始
示例:
item(children([Camping Equipment]),2) 结果:Sleeping Bags
3.24 intersect
语法:
intersect ( set_exp1 , set_exp2 [ , ALL ] )
描述:
返回两个输入集合的交集。只有可选 关键字 ALL 被作为第三个参数提供时,才会在结果中保留相同的内容。
示例:
intersect(set([Camping Equipment],[Mountaineering Equipment]), set([Camping Equipment],[Outdoor Protection],),ALL)
结果:Camping Equipment
3.25 lag
语法:
lag ( member , index_exp )
描述:
返回位于指定成员之间的指定位置的兄弟成员。
示例:
lag([Tents], 1) 结果:Cooking Gear
lag([Tents],-2) 结果:Packs
3.26 lastChild
语法:
lastChild ( member )
描述:
返回指定成员的最后一个子成员。
示例:
lastChild(Cooking Gear) 结果:TrailChief Utensils
lastChild([By Product Line]) 结果:Golf Equipment
3.27 lastPeriods
语法:
lastPeriods ( integer_exp , member )
描述:
返回以指定成员结尾的同一级别的成员集合。返回的成员数为 "integer_exp" 的绝对值。如果“integer_exp ”为负,那么将返回位于指定成员之后(包含指定成员)的成员。通常与时间维度结合使用。
示例:
lastPeriods(2,[2006 Q 4])
结果:2006 Q 3
2006 Q 4
lastPeriods(-3,[2006 Q 4])
结果:2006 Q 2
2006 Q 3
2006 Q 4
3.28 lastSibling
语法:
lastSibling ( member )
描述:
返回指定成员的父成员的最后一个子成员。
示例:
lastSibling ([Camping Equipment]) 结果:Golf Equipment
3.29 lead
语法:
lead ( member , index_exp )
描述:
返回位于指定成员之后的指定位置的兄弟成员。
示例:
lead ([Outdoor Protection], 1) 结果:Golf Equipment
lead ([Outdoor Protection],-2) 结果:Mountaineering Equipment
3.30 level
语法:
level ( member )
描述:
返回某个成员所在的级别。
示例:
level ([Golf Equipment])
结果:
Camping Equipment Mountaineering Equipment Personal Accessories Outdoor Protection Golf Equipment
level ([Outdoor Protection])
结果:
Camping Equipment Mountaineering Equipment Personal Accessories Outdoor Protection Golf Equipment
3.31 levels
语法:
levels ( hierarchy , index )
描述:
返回层次结构中其与根的距离由 "index" 指定的级别的成员。
示例:
levels([g reat_outdoors_company] . [Products]. [Products],2)
结果:
Cooking Gear Sleeping Bags Packs Tents ... Irons Putters Woods Golf Accessories
levels([great_outdoors_company] . [Products]. [Products], 1)
结果:
Camping Equipment Mountaineering Equipment Personal Accessories Outdoor Protection Golf Equipment
3.32 linkMember
语法:
linkMember ( member , level | hierarchy )
描述:
返回(同一维度的不同层次结构的)指定级别或层次结构中的相应成员。对于基于级别的层次结构,必须将一个级别指定为第二个参数,而对于父 - 子形式的层次结构,必须指定一个层次结构。当第二个参数没有解析为第一个参数的成员所属的维度层次结构时,将抛出一个异常。注意不支持对第一个参数使用计算成员。
示例:
linkMember([great_outdoor_sales_en] . [Years]. [Current Month]. [Month]- > :[PC].[@MEMBER].[20070701- 2007073 1],[great_outdoor_sales_en] . [Years]. [Years]. [Month])
结果:[great_outdoor_sales_en].[Years].[Years].[Month]- >:[PC].[@MEMBER].[20070701-20070731]
3.33 member
语法:
member ( value_exp [ , string1 [ , string2 [ , hierarchy ] ] ] ) Amember + b Member , unique id, caption, hierarchy
描述:
根据指定层次架构中的指定表达式定义一个成员。"string1" 用于识别由该函数创建的成员,它必须在查询中惟一,并且必须不同于同一个层次结构中的任何其他成员。
"string2" 用作这个成员的标题;如果没有给出的话,标题为空。如果层次结构被忽略,那么将假设一个度量维度。注意:被作为分组项(其兄弟项为其他计算或成员集)的所有计算都应当通过此函数显式分配给一个层次结构,否则结果将不可预测。惟一的例外情况就是当计算仅涉及与兄弟项相同的层次结构的成员时。在这种情况下,将假设计算属于该层次结构。
示例:
member(total([g reat_outdoors_com pany] . [Measures]. [Quantity sold] within set [2005]),'Quantity2005','Quantity sold 2005')
结果:
或者聚合以字母 B 开头的所有产品
member(total(currentMeasure within set filter([great_outdoors_company] . [Products]. [Products]. [Product name],caption([great_outdoors_company] . [Products]. [Products]. [Product name]) starts with 'B')),'BProducts','B Products',[great_outdoors_company] . [Products]. [Products])
结果:
3.34 members
语法:
members ( hierarchy | level )
描述:
返回位于某个层次结构或级别的成员集。对于层次结构,不能保证结果中的成员的顺序;如果需要一个可预测的顺序,必须使用一个显式的排序函数(比如 hierarchize )。
示例:
members([great_outdoors_company] . [Years]. [Years])
结果:
Years 2004 2004 Q 1 2004/Jan 2004/Feb 2004/Mar 2004 Q 2 2004/Apr ... 2006 Q 3 2006/Jul 2006/Aug 2006/Sep 2006 Q 4 2006/Oct 2006/Nov 2006/Dec
mem bers([g reat_outdoors_com pany] . [Products]. [Products]. [Product line])
结果:
Camping Equipment Mountaineering Equipment Personal Accessories Outdoor Protection Golf Equipment
3.35 nestedSet
语法:
nestedSet ( set_expr1 , set_expr2 )
描述:
返回在 set_expr1 的当前成员的上下文中计算的 set_expr2 的成
员集。
示例:
下面的示例计算了每个产品线的排名前两位的产品的收益。
nestedSet(members([Product line]), topCount( descendants( currentMember( [great_outdoors_company]. [Products]. [Products]), [great_outdoors_company] .[Products] . [Products]. [Product name] ), 2, [Revenue]))
结果:
3.36 nextMember
语法:
nextMember ( member )
描述:
返回指定成员所在的级别的下一个成员。
示例:
nextMember([Outdoor Protection]) 结果:Golf Equipment
3.37 openingPeriod
语法:
openingPeriod ( level [ , member ] )
描述:
返回某个成员的位于指定级别的后代的第一个兄弟成员。通常与时间维度结合使用。
示例:
openingPeriod([great_outdoors_company] . [Years]. [Years]. [Month]) 结果:2004/Jan
openingPeriod([great_outdoors_company] . [Years]. [Years]. [Year]) 结果:2004
openingPeriod([great_outdoors_company] . [Years]. [Years]. [Month],[2 006 Q 4])
结果:2006/Oct
3.38 order
语法:
order ( set_exp , value_exp [ , ASC | DESC | BASC | BDESC ] )
描述:
安排指定集合中的成员,依据是对集合中的每个值计算 "value_exp" 得到的值集合,该值集合通过第三个参数修改。
排序有两种不同变体:层次结构式(ASC 或 DESC )和非层次结构式(BASC 或 BDESC ,其中 B 表示 "break hierarchy" )。层次结构式排序首先根据成员在层次结构中的位置对它们进行安排。然后根据 "value_exp" 对每个成员的子成员排序。非层次结构式排序在集合中对成员进行排序,不考虑层次结构。如果没有给出显式的规定,将使用 ASC 作为默认排序方式。
示例:
order(members([Great Outdoors Company]. [Product]. [Product]. [Product type]),[Quantity sold], BASC)
以及
order(members([Great Outdoors Company]. [Product]. [Product]. [Product type]),[Quantity sold], ASC)
结果:
3.39 ordinal
语法:
ordinal ( level )
描述:
返回指定级别的从 0 开始的序号值(与根级别的距离)。
示例:
ordinal([great_outdoors_company] . [Products]. [Products] .[Product line])
结果:1
ordinal([g reat_outdoors_com pany] . [Products]. [Products]. [Product type])
结果:2
3.40 parallelPeriod
语法:
parallelPeriod ( level , int_exp , member )
描述:
返回位于与指定成员相同相对位置的来自不同时间段的成员。该函数类似于 "Cousin" 函数,但是与时间序列的关系更紧密。它将获得位于 "level" 的 "member" 的祖先(称为 "ancestor" );然后获取 "ancestor" 的偏移量为 "int exp" 的兄弟节点,并返回该兄弟节点的位于与指定成员在 "ancestor" 下的相同相对位置的后代。
示例:
parallelPeriod([great_outdoors_company] . [Years]. [Years]. [Quarter],- 1,[2006/Aug] )
结果:2006/Nov
parallelPeriod([great_outdoors_company] . [Years]. [Years]. [Quarter],1, [2006/Aug] )
结果:2006/May
parallelPeriod([great_outdoors_company] . [Years]. [Years]. [Year],2,[20 06/Aug] )
结果:2004/Aug
3.41 parent
语法:
parent ( member )
描述:
返回表示指定成员的父成员的成员。
示例:
parent([Cooking Gear]) 结果:Camping Equipment
3.42 periodsToDate
语法:
periodsToDate ( level , member )
描述:
返回位于与给定成员相同级别的兄弟成员集,即受到指定级别的约束。
它将定位位于 "level" 的 "member" 的祖先,并返回该祖先的位于与 "member" 相同级别的后代,直到并包括 "member" 。通常与时间维度结合使用。
示例:
periodsToDate([great_outdoors_company] . [Years]. [Years]. [Year], [2004/Mar] )
结果:返回 [2004/Jan] 、[2004/Feb] 、[2004/Mar] 的值
3.43 prevMember
语法:
prevMember ( member )
描述:
返回在同一级别中紧挨着指定成员的前一个成员。
示例:
prevMember ([Outdoor Protection]) 结果:Personal Accessories
prevMember ([2005]) 结果:2004
3.44 roleValue
语法:
roleValue ( string [ , member | set_exp ] )
描述:
返回与角色有关的属性的值,该角色的名称由 "string" 在指定的上下文内指定。第二个参数只有在一些有限的环境中是可选的,在这些环境下可以从其他上下文中获得该参数。通过根据角色(而不是查询项 ID )访问属性,可以在不同的数据源和模型之间迁移应用程序。(对于对维度建模的关系数据源,角色分配是由建模者执行的)。
为所有数据源类型的成员定义的内在角色包括:_businessKey 、_memberCaption 、_memberDescription 、_memberUniqueName 。可以在 Framework Manager 中为层次结构的每一个级别定义额外的角色。例如,一个 Product type 级别可以有一个名为“Type Shipping Container ”的属性列,而 Product 级别可以有一个“Product Shipping Container ”属性。每一个这些属性都可以在 Framework Manager 中分配一个名为“Container ”的定制角色。通过使用 roleValue 函数,就可以独立于实际的列名来引用属性。
示例:
roleValue('_busi nessKey',[great_outdoors_com pany] . [Years]. [Years]. [ Year])
结果:
("2004-01-0 1","2004- 12-31") ("2005-01-0 1","2005- 12-31") ("2006-01-0 1","2006- 12-31")
roleValue('_mem berUniqueName',[g reat_outdoors_com pany] . [Years]. [Years] .[Year])
结果:
[great_outdoors_company]. [Years]. [Years]. [Year] - > :[PC].[Years (Root)].[20040101-20041231] [great_outdoors_company]. [Years]. [Years]. [Year] - > :[PC].[Years (Root)].[20050101-20051231] [great_outdoors_company]. [Years]. [Years]. [Year] - > :[PC].[Years (Root)].[20060101-20061231]
3.45 rootMemeber
语法:
rootMember ( hierarchy )
描述:
返回单一根层次结构中的根成员。
示例:
rootMem ber([great_outdoors_company] . [Years]. [Years])
结果:[great_outdoor_sales_en]. [Years]. [Years]. [Years]- > :[PC].[@MEMBER].[Years]
3.46 rootMemebers
语法:
rootMembers ( hierarchy )
描述:
返回一个层次架构的根成员。
示例:
rootMem bers([great_outdoor_sales_en] . [Currency]. [Currency])
结果:
[great_outdoor_sales_en]. [Currency]. [Currency]- > :[PC].[@MEMBER].[USA] [great_outdoor_sales_en]. [Currency]. [Currency]- > :[PC].[@MEMBER].[CAN] [great_outdoor_sales_en]. [Currency]. [Currency]- > :[PC].[@MEMBER].[GBR] [great_outdoor_sales_en]. [Currency]. [Currency]- > :[PC].[@MEMBER].[SWE] [great_outdoor_sales_en]. [Currency]. [Currency]- > :[PC].[@MEMBER].[EUR] [great_outdoor_sales_en]. [Currency]. [Currency]- > :[PC].[@MEMBER].[JPN]
3.47 set
语法:
set ( member { , member } )
描述:
返回属于同一层次架构的成员的列表。
示例:
set([Golf Equipment], [Irons], [TrailChef Cup]) 结果:Golf Equipment
Irons TrailChef Cup
3.48 siblings
语法:
siblings ( member )
描述:
返回指定成员的父成员的子成员。
示例:
siblings([Golf Equipment])
结果:
Camping Equipment Golf Equipment Mountaineering Equipment Outdoor Protection Personal Accessories
3.49 subset
语法:
subset ( set_exp, index_exp1 [ , index_exp2 ] )
描述:
返回一个指定集合的成员的子集,这个指定集合以 "index_exp1" 开头。如果计数 "index_exp2" 被指定,将返回指定的成员(如果有的话)。否则,将返回所有其余的成员。
示例:
subset(members([great_outdoors_company] . [Products]. [Products]. [Product line]), 2)
结果:
Mountaineering Equipment Outdoor Protection Personal Accessories
subset(members([great_outdoors_company] . [Products]. [Products]. [Product line]), 2, 2)
结果:Mountaineering Equipment
Outdoor Protection
3.50 tail
语法:
tail ( set_exp [ , index_exp ] )
描述:
返回 "set exp" 的最后一个 "index_exp" 元素。"index_exp" 的默认值为 1 。
示例:
tail(members([great_outdoors_company] . [Products]. [Products]. [Product line]))
结果:Personal Accessories
tail(members([great_outdoors_company] . [Products]. [Products]. [Product line]),2)
结果:Outdoor Protection
Personal Accessories
3.51 topCount
语法:
topCount ( set_exp , index_exp , numeric_exp )
描述:
该函数根据对 "set_exp" 的每个成员计算得出的 "numeric_exp" 值对集合排序,并返回前 "index_exp" 个成员。
示例:
根据使用交集 [2006] 和默认度量 [Revenue] 的交叉表,确定 numeric_exp 。
topCount(set([Camping Equipment],[Golf Equipment],[Mountaineering Equipment]),2,[2006])
结果:
基于一个列表报表,对 numeric_exp 使用了 [Revenue] 度量的直接引用。
topCou nt([great_outdoors_company] . [Products]. [Products]. [Product line],2,[Revenue])
结果:Camping Equipment $89,713,990.92
Personal Accessories $31,894,465.86
3.52 topPercent
语法:
topPercent ( set_exp , numeric_exp1, numeric_exp2 )
描述:
该函数类似于 topSum ,但是阈值占总数的 "numeric_exp1" 个百分比。该函数的工作原理如下:对于给定的集合,寻找合计百分比大于或等于某个值(基于一个元组)的成员。
numeric_exp1 的范围为从 0 到 100 。
示例:
topPercent(set([Camping Equipment],[Golf Equipment],[Mountaineering Equipment]),40,[2006])
对于 Camping Equipment 、Golf Equipment 和 Mountaineering Equipment 集合,将为元组 2006 返回总百分比大于或等于 40% 的成员。
topPercent(set([Camping Equipment],[Golf Equipment],[Mountaineering Equipment]),70,tuple([2006],[great_outdoors_company] . [Measures]. [ Gross profit]))
3.53 topSum
语法:
topSum ( set_exp , numeric_exp1 , numeric_exp2 )
描述:
该函数将对 "numeric_exp2" 排序(后者对相应的 "set_exp" 成员进行计算),并选择其累计总数至少为 “numeric_exp1 ”的顶层的元素。
示例:
基于一个交叉表报表
topSum(child ren([Products]), 16000000,tuple([2006],[great_outdoors_ company].[Measures].[Gross profit]))
结果:
3.54 tuple
语法:
tuple ( member { , member } )
描述:
根据指定的成员(每个成员都必须来自不同的维度)识别一个 cell 位置(交集)。隐含了来自所有维度的当前成员(没有以其他方式通过参数指定)。未在计算上下文中指定的任何维度的当前成员都被假设为该维度的默认成员。这个 cell 的值可以从 "value" 函数获得。
示例:
tuple([Mountaineering Equipment], [Fax])
3.55 union
语法:
union ( set_exp1 , set_exp2 [ , ALL ] )
描述:
该函数返回 "set_exp1" 和 "set_exp2" 这两个集合的合集。只有可选的关键字 ALL 被作为第三个参数提供时,才能在结果集中保留相同的内容。
示例:
union(set([Camping Equipment], [Golf Equipment]), set([Golf Equipment], [Mountaineering Equipment]))
结果:
union(set([Camping Equipment], [Golf Equipment]), set([Golf Equipment], [Mountaineering Equipment]), all)
结果:
3.56 unique
语法:
unique ( set_expr )
描述:
从指定的集合表达式中移除所有相同的内容。余下的成员仍然保持最初的顺序。
示例:
unique(set([Camping Equipment], [Golf Equipment],[Golf Equipment], [Mountaineering Equipment]))
结果:
3.57 value
语法:
value ( tuple )
描述:
返回由某个元组识别的 cell 的值。注意 Measures 维度的默认成员为 Default Measure 。
在许多情况下将会返回一个隐式的值,并且 value 函数可能变得不必要。在下面的例子中,可以移除 value 函数并实现相同的结果。
示例:
value(tuple([great_outdoors_com pa ny]. [Years]. [Years]. [Year] - > :[PC].[Years (Root)].[20040101-2004123 1],[great_outdoors_company] . [Measures]. [Revenue])) 结果:$34,750,563.50
value(tuple([2004], [Camping Equipment] , [Revenue]) ) 结果:$20,471,328.88
4 附录 A – 函数分组
4.1 Date
closingPeriod lastPeriods openingPeriod parallelPeriod periodsToDate
4.2 Family
ancestor ancestors children cousin descendants firstChild firstSibling lastChild lastSibling parent siblings
4.3 Hierarchy
hierarchy level levels rootMember rootMembers
4.4 Member
currentMember defaultMember lag lead linkMember member nextMember prevMember
4.5 Set
emptySet except filter generate head hierarchize intersect item members nested Set order set subset tail union unique
4.6 TopandBottom
bottomCount bottomPercent bottomSum topCount topPercent topSum
4.7 Value
caption completeTuple ordinal roleValue tuple
下载
描述 | 名字 | 大小 |
---|---|---|
1 | OLAP Function Samples | 38k |
注意:
- 示例代码!
条评论
快来添加第一条评论 |
-
IBM PureSystems
IBM PureSystems™ 系列解决方案是一个专家集成系统
-
developerWorks 学习路线图
通过学习路线图系统掌握软件开发技能
-
软件下载资源中心
软件下载、试用版及云计算
请 登录 或 注册 后发表评论。
注意:评论中不支持 HTML 语法