cgons OLAP函数使用总结.docx

上传人:b****6 文档编号:15582582 上传时间:2023-07-05 格式:DOCX 页数:19 大小:24.23KB
下载 相关 举报
cgons OLAP函数使用总结.docx_第1页
第1页 / 共19页
cgons OLAP函数使用总结.docx_第2页
第2页 / 共19页
cgons OLAP函数使用总结.docx_第3页
第3页 / 共19页
cgons OLAP函数使用总结.docx_第4页
第4页 / 共19页
cgons OLAP函数使用总结.docx_第5页
第5页 / 共19页
cgons OLAP函数使用总结.docx_第6页
第6页 / 共19页
cgons OLAP函数使用总结.docx_第7页
第7页 / 共19页
cgons OLAP函数使用总结.docx_第8页
第8页 / 共19页
cgons OLAP函数使用总结.docx_第9页
第9页 / 共19页
cgons OLAP函数使用总结.docx_第10页
第10页 / 共19页
cgons OLAP函数使用总结.docx_第11页
第11页 / 共19页
cgons OLAP函数使用总结.docx_第12页
第12页 / 共19页
cgons OLAP函数使用总结.docx_第13页
第13页 / 共19页
cgons OLAP函数使用总结.docx_第14页
第14页 / 共19页
cgons OLAP函数使用总结.docx_第15页
第15页 / 共19页
cgons OLAP函数使用总结.docx_第16页
第16页 / 共19页
cgons OLAP函数使用总结.docx_第17页
第17页 / 共19页
cgons OLAP函数使用总结.docx_第18页
第18页 / 共19页
cgons OLAP函数使用总结.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

cgons OLAP函数使用总结.docx

《cgons OLAP函数使用总结.docx》由会员分享,可在线阅读,更多相关《cgons OLAP函数使用总结.docx(19页珍藏版)》请在冰点文库上搜索。

cgons OLAP函数使用总结.docx

cgonsOLAP函数使用总结

下函数说明均来自CognosReportNet说明,函数例子由本人总结编写

firstFromSet(set_exp,numeric_exp_max,numeric_exp_overflow)

返回在集中找到的前几个(不超过numeric_exp_max+numeric_exp_overflow)成员。

如果超过numeric_exp_max+numeric_exp_overflow,则只返回成员的最大数目。

remainderSet(member_exp,  set_exp,numeric_exp)

当set_expset的大小大于numeric_exp时,成员表达式将包括在返回的集中。

hierarchy(level|member|set_exp)

返回包含指定级别、成员或成员集的层级。

level(member)

返回成员的级别。

levels(hierarchy,index)

返回层级中与根级别相距某一距离(由“index”指定)的级别。

rootMembers(hierarchy)

返回层级的根成员。

currentMember(hierarchy)

返回迭代过程中某个层级的当前成员。

如果指定层级不在所计算的表达式的上下文中,则假定为其默认成员。

例子:

环比增长,相对于同年上月的增长:

([销售金额]-value(tuple(prevMember(currentMember([ARPD-Sale].[日期].[日期])),[销售金额])))

/value(tuple(prevMember(currentMember([ARPD-Sale].[日期].[日期])),[销售金额]))

defaultMember(hierarchy)

返回层级的默认成员。

lag(member,index_exp)

返回排在指定成员之前特定位数的同胞成员。

例子:

lag([AcrmSale].[日期].[日期].[DATE_KEY]->:

[PC].[@MEMBER].[20091203],2)

结果:

20091201

lead(member,index_exp)

返回排在指定成员之后特定位数的同胞成员。

例子:

lead([AcrmSale].[日期].[日期].[DATE_KEY]->:

[PC].[@MEMBER].[20091201],2)

结果:

20091203

members(hierarchy|level)

返回层级或级别中的成员集。

如果返回层级中的成员,则结果中无法保证成员的顺序;要按某一个顺序列出成员,必须使用明确排序的函数(如hierarchize)。

member(value_exp[,string1[,string2[,hierarchy]]])

根据指定层级中的指定表达式定义成员。

“string1”用于识别由此函数创建的成员,它必须在查询中是唯一的,并且不同于同一层级中的任何其它成员。

“string2”用作成员标题;如果不指定,则标题为空。

如果未指定层级,则假定为度量维度。

注释:

如果所有计算均用作分组项,并且这些分组项的同胞项是其它计算或成员集,则所有计算均应通过此函数明确分配给某一层级,否则会得到无法预计的结果。

唯一的例外是,如果计算仅涉及同一层级的同胞成员,则不必分配。

这种情况下,假定计算属于此层级。

nextMember(member)

返回包含指定成员的级别中的下一个成员。

prevMember(member)

返回同一级别中直接排在指定成员前面的成员。

ancestor(member,level|integer)

返回指定(命名)级别上指定成员的祖项,或返回以下级别上指定成员的祖项:

指定成员上面指定数量的级别。

注:

当存在多个此类祖项时,结果可能不一致。

例子:

ancestor([AcrmSale].[日期].[日期].[DATE_KEY]->:

[PC].[@MEMBER].[20091210],[AcrmSale].[日期].[日期].[YEAR])

结果:

2009年

ancestors(member,level|index)

返回某一成员在指定级别或高于该成员的级别中的所有祖项。

(在指定级别上,大多数数据源只支持一个祖项,而某些数据源则支持多个祖项。

因此结果是成员集。

例子:

ancestors([AcrmSale].[日期].[日期].[DATE_KEY]->:

[PC].[@MEMBER].[20091210],[AcrmSale].[日期].[日期].[MONTH])

结果:

12月

parent(member)

返回指定成员的父项成员。

例子:

parent([AcrmSale].[日期].[日期].[DATE_KEY]->:

[PC].[@MEMBER].[20091210])

结果:

12月

例子:

parent(parent([AcrmSale].[日期].[日期].[DATE_KEY]->:

[PC].[@MEMBER].[20091210]))

结果:

2009年

cousin(member1,member2)

返回member2的子项,该子项在member2下面的相对位置与member1在其父项下面的相对位置相同。

位置是指:

序号,返回序号相同的成员

例子:

cousin([AcrmSale].[日期].[日期].[DATE_KEY]->:

[PC].[@MEMBER].[20091022],[AcrmSale].[日期].[日期].[MONTH]->:

[PC].[@MEMBER].[200911])

descendants(member|set_expr,level|distance[,{self|before|beforewithmember|after}])

返回指定级别(限定名称)或与根级别相距某一距离(整数0..n)的级别上某成员或成员集的子项集。

可以指定多个选项(用空格隔开)以确定要返回的成员。

返回与member成员相距level级别上的成员

例子1:

查询粒度为年,统计上半年、下半年

上半年余额,六月的余额即为上半年余额:

total([余额]withinsetsubset(descendants([日期].[日期层次结构],[年]->?

year?

[日期].[日期层次结构].[月]),5,1))

说明:

descendants函数作用为:

得到查询的年份成员在[日期].[日期层次结构].[月]层次上的所有成员;取得的这些月份成员索引号从0开始;

subset函数,从第5个[月]成员开始取,取1个成员,即取得了成员:

6月;

total函数,再汇总6月的余额,相当于没有汇总;

例子2:

上半年发生额,前六个月的发生额相加为上半年发生额:

total([金额]withinsetsubset(descendants([日期].[日期层次结构].[年]->?

year?

[日期].[日期层次结构].[月]),0,6))

说明:

descendants函数作用为:

得到查询的年份成员在[日期].[日期层次结构].[月]层次上的所有成员;取得的这些月份成员索引号从0开始;

subset函数,从第0个[月]成员开始取,取6个成员,即取得了成员:

1月至6月;

total函数,再汇总1月到6月的发生额;

firstSibling(member)

返回成员父项的第一个子项。

返回member的大哥;

例子:

firstSibling([AcrmSale].[日期].[日期].[DATE_KEY]->:

[PC].[@MEMBER].[20091210])

结果:

20091201

lastChild(member)

返回指定成员的最后一个子项。

返回member最小的儿子

例子:

lastChild([AcrmSale].[日期].[日期].[DATE_KEY]->:

[PC].[@MEMBER].[200912])

结果:

20091231

siblings(member)

返回指定成员的父项的子项。

返回member的所有兄弟成员

例子:

siblings([AcrmSale].[日期].[日期].[DATE_KEY]->:

[PC].[@MEMBER].[20091210])

结果:

20091201到20091231

parallelPeriod(level[,int_exp[,member]])

返回先前时段中与指定成员具有相同相对位置的成员。

此函数与“Cousin”函数类似,但与时序的关系更为密切。

该函数先得出处于“level”的“member”的祖项(称为“祖项”);然后得出与“祖项”相距“int_exp”个位置的“祖项”同胞,并返回该同胞的子项中“member”的平行时段。

如果未指定,“int_exp”默认值为1,“member”的默认值为当前成员。

返回相对于level成员的祖项偏移量为int_exp的祖项成员的与level成员处于相同位置的成员

int_exp为正数,则要求的是该成员之前的层次,如:

parallelPeriod([月],1),如果[月]成员为200905,则parallelPeriod([月],1)值为:

200805

int_exp为负数,则要求的是该成员之后的层次,如:

parallelPeriod([月],-1),如果[月]成员为200905,则parallelPeriod([月],-1)值为:

201005

例子1:

去年同期:

即查询月为200905的话,该指标为200805该指标

total([金额]withinsetparallelPeriod([日期].[日期层次结构].[年],1,[日期].[日期层次结构].[月]->?

mon?

))

例子2:

同比增长:

相对于去年的增长

([销售金额]-value(tuple(parallelPeriod([ARPD-Sale].[日期].[日期].[年]),[销售金额])))

/value(tuple(parallelPeriod([ARPD-Sale].[日期].[日期].[年]),[销售金额]))

说明:

parallelPeriod([ARPD-Sale].[日期].[日期].[年])为取得去年相对于[年]成员,level为1的成员:

[月]成员;

tuple()为取得每个成员:

[月]与[销售金额]的交叉单元格

value()为取得交叉单元格的值

periodsToDate(level,member)

返回与指定成员处于同一级别的同胞成员集,并受指定级别限制。

它先查找处于“level”级别的“member”成员的祖项,然后返回此祖项中与“member”成员处于同一级别的子项(直到包括“member”成员)。

通常与时间维度配合使用。

返回member成员的level祖项的子项直至包括到member

例子1:

本年累计:

即查询月为200905的话,该指标为200901-200905期间发生

total([金额]withinsetperiodsToDate([日期].[日期层次结构].[年],[日期].[日期层次结构].[月]->?

mon?

))

例子2:

去年同期止累计:

即查询月为200905的话,该指标为200801-200805期间发生

total([金额]withinsetperiodsToDate([日期].[日期层次结构].[年],parallelPeriod([日期].[日期层次结构].[年],1,[日期].[日期层次结构].[月]->?

mon?

)))

例子3:

except(periodsToDate([AcrmSale].[日期].[日期].[YEAR],[AcrmSale].[日期].[日期].[DATE_KEY]->:

[PC].[@MEMBER].[20091210]),periodsToDate([AcrmSale].[日期].[日期].[YEAR],prevMember([AcrmSale].[日期].[日期].[DATE_KEY]->:

[PC].[@MEMBER].[20091201])))

下函数说明均来自CognosReportNet说明,函数例子由本人总结编写

firstFromSet(set_exp,numeric_exp_max,numeric_exp_overflow)

返回在集中找到的前几个(不超过numeric_exp_max+numeric_exp_overflow)成员。

如果超过numeric_exp_max+numeric_exp_overflow,则只返回成员的最大数目。

remainderSet(member_exp,  set_exp,numeric_exp)

当set_expset的大小大于numeric_exp时,成员表达式将包括在返回的集中。

hierarchy(level|member|set_exp)

返回包含指定级别、成员或成员集的层级。

level(member)

返回成员的级别。

levels(hierarchy,index)

返回层级中与根级别相距某一距离(由“index”指定)的级别。

rootMembers(hierarchy)

返回层级的根成员。

currentMember(hierarchy)

返回迭代过程中某个层级的当前成员。

如果指定层级不在所计算的表达式的上下文中,则假定为其默认成员。

例子:

环比增长,相对于同年上月的增长:

([销售金额]-value(tuple(prevMember(currentMember([ARPD-Sale].[日期].[日期])),[销售金额])))/value(tuple(prevMember(currentMember([ARPD-Sale].[日期].[日期])),[销售金额]))

defaultMember(hierarchy)

返回层级的默认成员。

lag(member,index_exp)

返回排在指定成员之前特定位数的同胞成员。

例子:

lag([AcrmSale].[日期].[日期].[DATE_KEY]->:

[PC].[@MEMBER].[20091203],2)

结果:

20091201

lead(member,index_exp)

返回排在指定成员之后特定位数的同胞成员。

例子:

lead([AcrmSale].[日期].[日期].[DATE_KEY]->:

[PC].[@MEMBER].[20091201],2)

结果:

20091203

members(hierarchy|level)

返回层级或级别中的成员集。

如果返回层级中的成员,则结果中无法保证成员的顺序;要按某一个顺序列出成员,必须使用明确排序的函数(如hierarchize)。

member(value_exp[,string1[,string2[,hierarchy]]])

根据指定层级中的指定表达式定义成员。

“string1”用于识别由此函数创建的成员,它必须在查询中是唯一的,并且不同于同一层级中的任何其它成员。

“string2”用作成员标题;如果不指定,则标题为空。

如果未指定层级,则假定为度量维度。

注释:

如果所有计算均用作分组项,并且这些分组项的同胞项是其它计算或成员集,则所有计算均应通过此函数明确分配给某一层级,否则会得到无法预计的结果。

唯一的例外是,如果计算仅涉及同一层级的同胞成员,则不必分配。

这种情况下,假定计算属于此层级。

nextMember(member)

返回包含指定成员的级别中的下一个成员。

prevMember(member)

返回同一级别中直接排在指定成员前面的成员。

ancestor(member,level|integer)

返回指定(命名)级别上指定成员的祖项,或返回以下级别上指定成员的祖项:

指定成员上面指定数量的级别。

注:

当存在多个此类祖项时,结果可能不一致。

例子:

ancestor([AcrmSale].[日期].[日期].[DATE_KEY]->:

[PC].[@MEMBER].[20091210],[AcrmSale].[日期].[日期].[YEAR])

结果:

2009年

ancestors(member,level|index)

返回某一成员在指定级别或高于该成员的级别中的所有祖项。

(在指定级别上,大多数数据源只支持一个祖项,而某些数据源则支持多个祖项。

因此结果是成员集。

例子:

ancestors([AcrmSale].[日期].[日期].[DATE_KEY]->:

[PC].[@MEMBER].[20091210],[AcrmSale].[日期].[日期].[MONTH])

结果:

12月

parent(member)

返回指定成员的父项成员。

例子:

parent([AcrmSale].[日期].[日期].[DATE_KEY]->:

[PC].[@MEMBER].[20091210])

结果:

12月

例子:

parent(parent([AcrmSale].[日期].[日期].[DATE_KEY]->:

[PC].[@MEMBER].[20091210]))

结果:

2009年

cousin(member1,member2)

返回member2的子项,该子项在member2下面的相对位置与member1在其父项下面的相对位置相同。

位置是指:

序号,返回序号相同的成员

例子:

cousin([AcrmSale].[日期].[日期].[DATE_KEY]->:

[PC].[@MEMBER].[20091022],[AcrmSale].[日期].[日期].[MONTH]->:

[PC].[@MEMBER].[200911])

descendants(member|set_expr,level|distance[,{self|before|beforewithmember|after}])

返回指定级别(限定名称)或与根级别相距某一距离(整数0..n)的级别上某成员或成员集的子项集。

可以指定多个选项(用空格隔开)以确定要返回的成员。

返回与member成员相距level级别上的成员

例子1:

查询粒度为年,统计上半年、下半年

上半年余额,六月的余额即为上半年余额:

total([余额]withinsetsubset(descendants([日期].[日期层次结构],[年]->?

year?

[日期].[日期层次结构].[月]),5,1))

说明:

descendants函数作用为:

得到查询的年份成员在[日期].[日期层次结构].[月]层次上的所有成员;取得的这些月份成员索引号从0开始;

subset函数,从第5个[月]成员开始取,取1个成员,即取得了成员:

6月;

total函数,再汇总6月的余额,相当于没有汇总;

例子2:

上半年发生额,前六个月的发生额相加为上半年发生额:

total([金额]withinsetsubset(descendants([日期].[日期层次结构].[年]->?

year?

[日期].[日期层次结构].[月]),0,6))

说明:

descendants函数作用为:

得到查询的年份成员在[日期].[日期层次结构].[月]层次上的所有成员;取得的这些月份成员索引号从0开始;

subset函数,从第0个[月]成员开始取,取6个成员,即取得了成员:

1月至6月;

total函数,再汇总1月到6月的发生额;

firstSibling(member)

返回成员父项的第一个子项。

返回member的大哥;

例子:

firstSibling([AcrmSale].[日期].[日期].[DATE_KEY]->:

[PC].[@MEMBER].[20091210])

结果:

20091201

lastChild(member)

返回指定成员的最后一个子项。

返回member最小的儿子

例子:

lastChild([AcrmSale].[日期].[日期].[DATE_KEY]->:

[PC].[@MEMBER].[200912])

结果:

20091231

siblings(member)

返回指定成员的父项的子项。

返回member的所有兄弟成员

例子:

siblings([AcrmSale].[日期].[日期].[DATE_KEY]->:

[PC].[@MEMBER].[20091210])

结果:

20091201到20091231

parallelPeriod(level[,int_exp[,member]])

返回先前时段中与指定成员具有相同相对位置的成员。

此函数与“Cousin”函数类似,但与时序的关系更为密切。

该函数先得出处于“level”的“member”的祖项(称为“祖项”);然后得出与“祖项”相距“int_exp”个位置的“祖项”同胞,并返回该同胞的子项中“member”的平行时段。

如果未指定,“int_exp”默认值为1,“member”的默认值为当前成员。

返回相对于level成员的祖项偏移量为int_exp的祖项成员的与level成员处于相同位置的成员

int_exp为正数,则要求的是该成员之前的层次,如:

parallelPeriod([月],1),如果[月]成员为200905,则parallelPeriod([月],1)值为:

200805

int_exp为负数,则要求的是该成员之后的层次,如:

parallelPeriod([月],-1),如果[月]成员为200905,则parallelPeriod([月],-1)值为:

201005

例子1:

去年同期:

即查询月为200905的话,该指标为200805该指标

total([金额]withinsetparallelPeriod([日期].[日期层次结构].[年],1,[日期].[日期层次结构].[月]->?

mon?

))

例子2:

同比增长:

相对于去年的增长

([销售金额]-value(tuple(parallelPeriod([ARPD-Sale].[日期].[日期].[年]),[销售金额])))/value(tuple(parallelPeriod([ARPD-Sale].[日期].[日期].[年]),[销售金额]))

说明:

parallelPeriod([ARPD-Sale].[日期].[日期].[年])为取得去年相对于[年]成员,level为1的成员:

[月]成员;

tuple()为取得每个成员:

[月]与[销售金额]的交叉单元格

value()为取得交叉单元格的值

periodsToDate(level,member)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2