再谈Cognos报表设计中的维度函数

浏览: 2687

在报表设计的过程中,客户很多时候会想看同比、环比的数据,很多人会想到利用日期函数在数据库中处理好然后直接在报表拖出来使用,其实这样加大了数据库的压力,当然也是解决问题的一种思路.今天我们就来说一下如何用Cognos维度函数来解决同比环比的问题.

由于时间有限、Cognos维度函数众多,这里我们就举例我们用到的

1:tuple函数

tuple (  成员 { , 成员 } )

根据指定成员(它们必须来自不同的维度)确定单元格位置(交集)。此功能显式包括所有维度中的当前成员,这些维度未在自变量中另行指定。假定未在评估上下文中指定的任何维度的当前成员是该维度的默认成员。可使用“值”功能来获取此单元格的值。

示例:tuple ( [登山装备] , [传真] )

结果:返回“登山装备”销售额(按传真)。

2:currentMember函数

currentMember ( 层级 )

返回迭代过程中该层级的当前成员。如果“层级”不在所计算的表达式的上下文中,那么假定为其默认成员。此函数显示在“卷动和移动平均值”互动式示样报表中。

3:prevMember函数

prevMember ( 成员 )

返回同一级别中直接排在“成员”前面的成员。此函数出现在“GO 数据仓库(分析)”数据包中的“逐年销售额增长”示样报表中。

示例:prevMember ( [户外防护用品] )

结果:个人附件

示例:prevMember ( [2005] )

结果:2004

---------------------------------------------------------下面用具体的例子来做一下实践---------------------------------------------

日期维度

查询1:单独使用prevMember 和currentMember 函数

日期:currentMember ([产品认购分析].[日期].[日期])

前一天:prevMember ([日期])

交叉表结构如下图:

查询2:使用prevMember 和tuple  函数

前一天认购金额:

tuple([认购金额],prevMember(currentMember([产品认购分析].[日期].[日期])))

交叉表结构如下图:

----------------------------------------------------------------运行结果-------------------------------------------------

--分析结果

1:单独使用Member类函数可以单独的得到上一个或者下一个成员,然后固有维度成员+度量结合可以求出

   固有维度成员的前一个下一个成员的度量值

2:使用tuple和member函数+度量可以再固有度量的基础上直接的求出上一个或者下一个固有维度成员的度

   量值

3:1是先得到成员然后求成员对应的度量值,2是成员和度量值一起采用交叉结果集的形式展现出来

4:可以参考更多的维度函数,日期维度如果具有年-季度-月-周-日的完整结构,就可以更轻松的设计出一些对

   比类型的数据报表了 

推荐 0
本文由 kingwang 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册