不規則月份統計:如果起始時間是2014-01-10,則將2014-01-10到2014-02-09作為一組,將2014-02-10到2014-03-9作為一組。如果起始時間是2014-01-31,則將2014-02-27作為一組,將2014-02-28到2014-03-30作為一組。
集算器**:
a1:根據起止時間查詢資料庫,其中startdate和enddate是外部引數。
a2:根據起止時間算出月份間隔。比如2014-01-31和2014-07-31間隔6個月。
b2:根據起始時間和日期間隔算出不規則月份的開始日期,並將起始時間插入第1位。「|」表示合併,「~」表示集合中的當前成員,即數字1到6,after函式可以正確計算不規則月份。結果如下:
a3:按b2區間對a1分組,統計出不規則月份的銷售額,並將b2作為最後一列。函式pseg可返回資料所在的區間號。~.sum(amount)中的~表示分組後的當前組。#表示a1當前組號。計算結果如下:
a4:取出a3的第2和第3列,返回給報表工具。集算器對外提供jdbc介面,報表工具會將集算器識別為普通資料庫。
下面用birt設計簡單的list表:
報表呼叫集算器的方法和呼叫儲存過程一樣,比如將本指令碼儲存為birtunregulmonth.dfx,則在birt的儲存過程設計器中可以用callbirtunregulmonth(?,?)來呼叫。預覽後表樣如下:
Birt 如何實現不規則月份統計
集算器實現 birt 等報表工具中不規則月份統計 業務報表中,常常需要基於時間段進行分組統計,特別是按月份分組統計。一般情況如果按自然月就簡單了,但有時候也會需要按不規則月份來分組。例如,某企業從 1 月 16 日開始實行某種特殊的 策略或營銷活動,因此以後都想以每月 16 號為界來統計產品銷售情況...
Birt 如何實現不規則月份統計
業務報表中,常常需要基於時間段進行分組統計,特別是按月份分組統計。一般情況如果按自然月就簡單了,但有時候也會需要按不規則月份來分組。例如,某企業從 1 月 16 日開始實行某種特殊的 策略或營銷活動,因此以後都想以每月 16 號為界來統計產品銷售情況。這裡所謂不規則月份就是指 如果起始時間是 201...
不規則月份統計報表的實現
不規則月份統計 如果起始時間是2014 01 10,則將2014 01 10到2014 02 09作為一組,將2014 02 10到2014 03 9作為一組。如果起始時間是2014 01 31,則將2014 02 27作為一組,將2014 02 28到2014 03 30作為一組。集算器 a1 根...