集算器協助報表工具實現跨行運算

2021-07-08 17:37:25 字數 1408 閱讀 7812

有些報表工具不直接支援跨行計算,需要用表指令碼實現,非常麻煩,遇到多層分組的情況會更複雜。集算器支援有序計算,可以彌補這一不足。報表工具可將集算器指令碼檔案當做資料庫儲存過程執行,

下面舉例說明報表開發中常見的跨行計算,以及集算器對應的解法。

比上期和同期比

庫表sorder儲存著每個銷售員每天的訂單,報表需要統計指定時間段內各月份銷售額的比上期和同期比。源資料如下:

先用sql進行分組彙總,計算出每年每月的銷售額,再用公式「當月銷售額/上月銷售額」計算比上期。結果如下:

用sql對分組後的資料按月份、年份排序,再用公式「當月銷售額/上一年同月份銷售額」進行計算,結果如下:

每月累計銷售額

計算每個銷售員每個月的累計銷售額,跨年時清零。 

先用sql進行分組彙總,計算出每個銷售員每年每月的銷售額,再進行跨行計算,用公式「當月累計=本月銷售額+上月累計」。結果如下:

單賬戶各期餘額

以逗號為分隔符讀入檔案,按照公式「上期餘額-本期存款-本期取款」為公式計算本期餘額,結果如下:

多產品每日庫存

庫表inout記錄著每種商品每天的出入庫情況,日期無間斷,初始庫存為0。現在需要在報表中展現這些資料,並額外增加一列:每日庫存。

對每種產品分別計算(分組),當日庫存的演算法是「當日入庫-當日出庫+昨日庫存」。集算器可用[-1]表示上一條記錄,因此可以直觀寫出表示式。計算結果如下:

假設時間是間斷的,則需要將資料先按不間斷的時間序列對齊,再計算庫存,**如下:

貸款分期

庫表loan儲存著貸款資訊,包括貸款總額、按月分期數、年利率。要求實現一張分組表,在每條貸款資訊下列出各期明細,包括:當期還款額、當期利息、當期本金、剩餘本金。源資料如下:

影音先鋒電影

先根據公式計算每筆貸款的月利率和每期還款額,再根據每筆貸款資訊新建明細二維表,計算出當期利息、當期本金、剩餘本金,最後合併明細表。其中第1筆貸款的明細如下:

不規則跨行佔比

資料庫表majorsum儲存著某醫院重點科室以及全院的患者統計,報表需要按字母順序呈現各科室的患者佔比,並在最後保留全院患者數量。源資料如下:

報表工具實現單據套打

摘要 單據套打再也不用手動測量,反覆除錯了,報表工具實現單據套打,去幹學院看個究竟 報表工具實現單據套打 實際專案開發中,很多情況會涉及到單據的列印。即在一張印刷好的空白單據上,準確無誤地列印上單據的內容。用傳統的報表工具,我們通常會用尺子量每乙個資料區域的位置,然後在螢幕上根據尺子量出的尺寸設計每...

用Web報表工具實現組內序號

組內序號 上圖顯示了為每乙個公司在自己所在城市內的編號。下面我們來看一下上述報表的實現過程 1.連線資料庫frdemo 2.設計報表 2.1新建報表 2.2錶樣設計 按照下圖設計好報表的基本框架 錶樣設計 2.3新建一資料集名為ds1 sql語句 select 商.城市 商 公司名稱 商 聯絡人姓名...

潤幹報表5 巧用集算器資料集

看如下圖所示報表 這個報表從樣式來看,可以看作是乙個簡單的網格式報表,統計著各種收支金額,但因為取數負責,每個格仔的資料都來自乙個負責的sql資料集,並且涉及十幾個,乃至幾十個資料集,藍色區域裡每個格仔都需要從各自的資料集裡檢索遍歷,查詢與左表頭關聯的記錄。為了方便體會這一點,我們將上圖報表簡化一點...