集算器协助报表工具实现跨行运算

来源:互联网 发布:淘宝网中老年裙子 编辑:程序博客网 时间:2024/05/29 17:42


博客分类:


  有些报表工具不直接支持跨行计算,需要用表脚本实现,非常麻烦,遇到多层分组的情况会更复杂。集算器支持有序计算,可以弥补这一不足。报表工具可将集算器脚本文件当做数据库存储过程执行,

  下面举例说明报表开发中常见的跨行计算,以及集算器对应的解法。

伦理片 http://www.dotdy.com/  

比上期和同期比

  库表sOrder存储着每个销售员每天的订单,报表需要统计指定时间段内各月份销售额的比上期和同期比。源数据如下:


  先用SQL进行分组汇总,计算出每年每月的销售额,再用公式“当月销售额/上月销售额”计算比上期。结果如下:


  用SQL对分组后的数据按月份、年份排序,再用公式“当月销售额/上一年同月份销售额”进行计算,结果如下:

每月累计销售额

  计算每个销售员每个月的累计销售额,跨年时清零。 

  先用SQL进行分组汇总,计算出每个销售员每年每月的销售额,再进行跨行计算,用公式“当月累计=本月销售额+上月累计”。结果如下:
 

单账户各期余额

 

  以逗号为分隔符读入文件,按照公式“上期余额-本期存款-本期取款”为公式计算本期余额,结果如下:

多产品每日库存

  库表inout记录着每种商品每天的出入库情况,日期无间断,初始库存为0。现在需要在报表中展现这些数据,并额外增加一列:每日库存。

 

  对每种产品分别计算(分组),当日库存的算法是“当日入库-当日出库+昨日库存”。集算器可用[-1]表示上一条记录,因此可以直观写出表达式。计算结果如下:
 

  假设时间是间断的,则需要将数据先按不间断的时间序列对齐,再计算库存,代码如下:
 

贷款分期

  库表loan存储着贷款信息,包括贷款总额、按月分期数、年利率。要求实现一张分组表,在每条贷款信息下列出各期明细,包括:当期还款额、当期利息、当期本金、剩余本金。源数据如下:

 影音先锋电影 http://www.iskdy.com/

  先根据公式计算每笔贷款的月利率和每期还款额,再根据每笔贷款信息新建明细二维表,计算出当期利息、当期本金、剩余本金,最后合并明细表。其中第1笔贷款的明细如下:
 

不规则跨行占比

  数据库表majorSum存储着某医院重点科室以及全院的患者统计,报表需要按字母顺序呈现各科室的患者占比,并在最后保留全院患者数量。源数据如下:




0 0
原创粉丝点击