欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-31 22:38:09
...

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

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

比上期和同期比

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

集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器

  比上期代码如下:
集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器

  先用SQL进行分组汇总,计算出每年每月的销售额,再用公式“当月销售额/上月销售额”计算比上期。结果如下:
集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器

  同期比代码如下:
集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器 

  用SQL对分组后的数据按月份、年份排序,再用公式“当月销售额/上一年同月份销售额”进行计算,结果如下:
集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器

每月累计销售额

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

  集算器代码:
集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器 

  先用SQL进行分组汇总,计算出每个销售员每年每月的销售额,再进行跨行计算,用公式“当月累计=本月销售额+上月累计”。结果如下:
集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器 

单账户各期余额

  data.csv存储着某账户各期资金存取情况,初始余额为45,需要根据该文件计算出各期余额,部分源数据如下:
集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器 

  集算器代码:
集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器 

  以逗号为分隔符读入文件,按照公式“上期余额-本期存款-本期取款”为公式计算本期余额,结果如下:
集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器

多产品每日库存

  库表inout记录着每种商品每天的出入库情况,日期无间断,初始库存为0。现在需要在报表中展现这些数据,并额外增加一列:每日库存。
集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器 

  集算器代码:
集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器 

  对每种产品分别计算(分组),当日库存的算法是“当日入库-当日出库+昨日库存”。集算器可用[-1]表示上一条记录,因此可以直观写出表达式。计算结果如下:
集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器 

  假设时间是间断的,则需要将数据先按不间断的时间序列对齐,再计算库存,代码如下:
集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器 

贷款分期

  库表loan存储着贷款信息,包括贷款总额、按月分期数、年利率。要求实现一张分组表,在每条贷款信息下列出各期明细,包括:当期还款额、当期利息、当期本金、剩余本金。源数据如下:
集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器 

  集算器代码:
集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器

  先根据公式计算每笔贷款的月利率和每期还款额,再根据每笔贷款信息新建明细二维表,计算出当期利息、当期本金、剩余本金,最后合并明细表。其中第1笔贷款的明细如下:
集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器 

不规则跨行占比

  数据库表majorSum存储着某医院重点科室以及全院的患者统计,报表需要按字母顺序呈现各科室的患者占比,并在最后保留全院患者数量。源数据如下:
集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器 

  期望的报表如下:
集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器

  集算器代码如下:
集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器 

  首先用函数maxp找到全院患者对应的记录(patient最大),再用“\”进行差集运算,获得各科室患者对应的记录,之后计算各科室患者的占比,最后用“|”纵向拼接记录。结果如下:
集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器 

  • 集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器
  • 大小: 39.4 KB
  • 集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器
  • 大小: 27.4 KB
  • 集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器
  • 大小: 27.6 KB
  • 集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器
  • 大小: 30.3 KB
  • 集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器
  • 大小: 44.4 KB
  • 集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器
  • 大小: 29.3 KB
  • 集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器
  • 大小: 64.5 KB
  • 集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器
  • 大小: 22.9 KB
  • 集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器
  • 大小: 12.9 KB
  • 集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器
  • 大小: 33.7 KB
  • 集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器
  • 大小: 27.5 KB
  • 集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器
  • 大小: 18.4 KB
  • 集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器
  • 大小: 54.8 KB
  • 集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器
  • 大小: 35.8 KB
  • 集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器
  • 大小: 11.6 KB
  • 集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器
  • 大小: 48.5 KB
  • 集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器
  • 大小: 62.8 KB
  • 集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器
  • 大小: 23.8 KB
  • 集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器
  • 大小: 30.4 KB
  • 集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器
  • 大小: 26.4 KB
  • 集算器协助报表工具实现跨行运算
            
    
    博客分类: DB 不规则跨行占比贷款分期每日库存累计销售额集算器
  • 大小: 32.2 KB