用Jasper計算交叉增長率

2021-08-27 22:17:56 字數 844 閱讀 9688

交叉表的每一列都是動態生成的,進行列間計算時需要動態引用,用jasper指令碼實現此類需求有一定難度,用集算器在資料準備階段實現則相對簡單,下面用例子來說明。

資料庫表store儲存著多種產品在2014、2023年的銷售量,需要用交叉表呈現每種產品每年的銷售量,並計算出各產品的年增長率。部分源資料如下:

集算器**:

a1:取出store表的記錄。

a2:追加各產品的年增長率。group按產品分組,run對每組資料依次計算,record追加記錄,~(i)表示當前組中的第i條記錄。a2的計算結果如下:

a3:將計算結果返回給報表。集算器對外提供jdbc介面,報表工具會將集算器識別為普通資料庫。 

用jasper設計最簡單的交叉表:

預覽後可以看到報表結果:

報表呼叫集算器的方法和呼叫儲存過程一樣,比如將本指令碼儲存為annularate.dfx,則在jasper的sql設計器中可以用call annularate ()來呼叫並傳入引數。

復合增長率

復合增長率的英文縮寫為 cagr compound annual growth rate cagr並不等於現實生活中gr growth rate 的數值。它的目的是描述乙個投資回報率轉變成乙個較穩定的投資回報所得到的預想值。我們可以認為cagr平滑了回報曲線,不會為短期回報的劇變而迷失。一項投資在特...

1012 增長率問題

有乙個數列,它是由自然數組成的,並且嚴格單調上公升。最小的數不小於s,最大的不超過t。現在知道這個數列有乙個性質 後乙個數相對於前乙個數的增長率總是百分比下的整數 如5相對於4的增長率是25 25為整數 而9對7就不行了 現在問 這個數列最長可以有多長?滿足最長要求的數列有多少個?輸入僅有一行,包含...

Oracle 環比增長率

首先,了解什麼是 環比增長率?環比增長率 本期數 上期數 上期數 100 如 2014年2月的工資為 5000,2014年1月的工資為4000,則2月份的環比增長率為 5000 4000 4000 100 25 那麼,oracle中的sql語句怎麼寫呢?舉個例子 1.建表 create table ...