sdwjian 发表于 2011-12-22 08:54

使用Cognos 的total函数进行部分汇总

<DIV><FONT face=Verdana>如果是简单的分类汇总,则可以使用界面的拖拽方式即可实现。Cognos 的total函数也支持部分汇总方式,场景如下:</FONT>
<P><SPAN style="FONT-SIZE: 16px; FONT-FAMILY: Verdana">&nbsp;&nbsp;&nbsp;&nbsp; 在一个查询中,查询的结果行中包含了上下两个级别的数据,如第一行是江西省的数据,第二行是景德镇的数据,第三行是广东省</SPAN></P>
<P><SPAN style="FONT-SIZE: 16px; FONT-FAMILY: Verdana">区域&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 产值&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><EM><SPAN style="FONT-SIZE: 16px; FONT-FAMILY: Verdana">区域级别</SPAN></EM></P>
<P><SPAN style="FONT-SIZE: 16px; FONT-FAMILY: Verdana">江西省&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 123454.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><EM><SPAN style="FONT-SIZE: 16px; FONT-FAMILY: Verdana">省级</SPAN></EM></P>
<P><SPAN style="FONT-SIZE: 16px; FONT-FAMILY: Verdana">景德镇&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3452.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><EM><SPAN style="FONT-SIZE: 16px; FONT-FAMILY: Verdana">市级</SPAN></EM></P>
<P><SPAN style="FONT-SIZE: 16px; FONT-FAMILY: Verdana">广东省&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 445666.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><EM><SPAN style="FONT-SIZE: 16px; FONT-FAMILY: Verdana">省级</SPAN></EM></P>
<P><STRONG><SPAN style="FONT-SIZE: 16px; FONT-FAMILY: Verdana">合计&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 569120.4&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></STRONG><SPAN style="FONT-SIZE: 16px; FONT-FAMILY: Verdana">&nbsp;&nbsp;</SPAN></P>
<P><SPAN style="FONT-SIZE: 16px; FONT-FAMILY: Verdana">&nbsp;&nbsp;&nbsp;&nbsp; 此合计值景德镇的值未参与计算,原因是已经包含在江西省的数值中了,那么该合计值不能自动生成,而是要使用total函数,书写方式如下:</SPAN></P>
<P><SPAN style="FONT-SIZE: 16px; FONT-FAMILY: Verdana">&nbsp;&nbsp;&nbsp;&nbsp; total(currentMeasure within set filter([区域], [区域级别] = ‘省级’))</SPAN></P>
<P><SPAN style="FONT-SIZE: 16px; FONT-FAMILY: Verdana">&nbsp;&nbsp;&nbsp;&nbsp; 其中斜体的区域级别可以不作为显示项。上述total函数的汇总计算仅包含filter过滤后的内容进行汇总,此类用法最好能够配合”区域“内容的级别缩进,以便更为明确的表示层级关系,否则容易造成报表逻辑不明确,引起误解。</SPAN></P>
<P><EM><SPAN style="FONT-SIZE: 16px; FONT-FAMILY: Verdana"><SPAN style="FONT-SIZE: 16px; COLOR: rgb(255,0,0); FONT-FAMILY: Verdana">注意:</SPAN><SPAN style="FONT-SIZE: 16px; FONT-FAMILY: Verdana">total函数的这个用法在Cognos 8.3 FP4中有异常,如果</SPAN></SPAN><SPAN style="FONT-SIZE: 16px; FONT-FAMILY: Verdana">[区域]或</SPAN><SPAN style="FONT-SIZE: 16px; FONT-FAMILY: Verdana">[区域级别] 的“聚合函数”设置成“已计算”可能</SPAN><SPAN style="FONT-SIZE: 16px; FONT-FAMILY: Verdana">会导致BIBUS进程崩溃;</SPAN></EM></P>
<P><EM><SPAN style="FONT-SIZE: 16px; FONT-FAMILY: Verdana">另该函数使用在维度数据源中已定义成员集,未定义成员集,例如直接在关系数据源使用则</SPAN><SPAN style="FONT-SIZE: 16px; FONT-FAMILY: Verdana">会报语法警告,如下:</SPAN></EM></P>
<P><EM><SPAN style="FONT-SIZE: 16px; COLOR: rgb(179,179,179); FONT-FAMILY: Verdana">OP-ERR-0231 XX参数无效,该参数应为成员集</SPAN></EM></P>
<P><EM><SPAN style="FONT-SIZE: 16px; FONT-FAMILY: Verdana">该警告不影响使用!</SPAN></EM></P>
<P><EM><SPAN style="FONT-SIZE: 16px; FONT-FAMILY: Verdana"></SPAN></EM>&nbsp;</P></DIV>
页: [1]
查看完整版本: 使用Cognos 的total函数进行部分汇总