再談Cognos報表設計中的維度函數


在報表設計的過程中,客戶很多時候會想看同比、環比的數據,很多人會想到利用日期函數在數據庫中處理好然后直接在報表拖出來使用,其實這樣加大了數據庫的壓力,當然也是解決問題的一種思路.今天我們就來說一下如何用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:可以參考更多的維度函數,日期維度如果具有年-季度-月-周-日的完整結構,就可以更輕松的設計出一些對
   比類型的數據報表了 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM