有些报表工具不直接支持跨行计算,需要用表脚本实现,非常麻烦,遇到多层分组的情况会更复杂。集算器支持有序计算,可以弥补这一不足。报表工具可将集算器脚本文件当做数据库存储过程执行,详情参考集算器辅助报表开发的集成方法。
下面举例说明报表开发中常见的跨行计算,以及集算器对应的解法。
比上期和同期比
库表sOrder存储着每个销售员每天的订单,报表需要统计指定时间段内各月份销售额的比上期和同期比。源数据如下:
比上期代码如下:
先用SQL进行分组汇总,计算出每年每月的销售额,再用公式“当月销售额/上月销售额”计算比上期。结果如下:
同期比代码如下:
用SQL对分组后的数据按月份、年份排序,再用公式“当月销售额/上一年同月份销售额”进行计算,结果如下:
每月累计销售额
计算每个销售员每个月的累计销售额,跨年时清零。
集算器代码:
先用SQL进行分组汇总,计算出每个销售员每年每月的销售额,再进行跨行计算,用公式“当月累计=本月销售额+上月累计”。结果如下:
单账户各期余额
data.csv存储着某账户各期资金存取情况,初始余额为45,需要根据该文件计算出各期余额,部分源数据如下:
集算器代码:
以逗号为分隔符读入文件,按照公式“上期余额-本期存款-本期取款”为公式计算本期余额,结果如下:
多产品每日库存
库表inout记录着每种商品每天的出入库情况,日期无间断,初始库存为0。现在需要在报表中展现这些数据,并额外增加一列:每日库存。
集算器代码:
对每种产品分别计算(分组),当日库存的算法是“当日入库-当日出库+昨日库存”。集算器可用[-1]表示上一条记录,因此可以直观写出表达式。计算结果如下:
假设时间是间断的,则需要将数据先按不间断的时间序列对齐,再计算库存,代码如下:
贷款分期
库表loan存储着贷款信息,包括贷款总额、按月分期数、年利率。要求实现一张分组表,在每条贷款信息下列出各期明细,包括:当期还款额、当期利息、当期本金、剩余本金。源数据如下:
集算器代码:
先根据公式计算每笔贷款的月利率和每期还款额,再根据每笔贷款信息新建明细二维表,计算出当期利息、当期本金、剩余本金,最后合并明细表。其中第1笔贷款的明细如下:
不规则跨行占比
数据库表majorSum存储着某医院重点科室以及全院的患者统计,报表需要按字母顺序呈现各科室的患者占比,并在最后保留全院患者数量。源数据如下:
期望的报表如下:
集算器代码如下:
首先用函数maxp找到全院患者对应的记录(patient最大),再用“\”进行差集运算,获得各科室患者对应的记录,之后计算各科室患者的占比,最后用“|”纵向拼接记录。结果如下:
相关推荐
实现加法运算实现加法运算实现加法运算实现加法运算
实现收支的跨表运算.xlsx源码EXCEL VBA宏编程xlsx实例代码下载实现收支的跨表运算.xlsx源码EXCEL VBA宏编程xlsx实例代码下载实现收支的跨表运算.xlsx源码EXCEL VBA宏编程xlsx实例代码下载实现收支的跨表运算.xlsx...
实现一个能进行稀疏矩阵基本运算的运算器。 功能要求: 1. 以“带行逻辑链接信息”的三元组顺序表表示稀疏矩阵,实现两个矩阵相加、 相减和相乘的运算。稀疏矩阵的输入形式采用三元组表示,而运算结果的矩阵则 以...
本文主要介绍利用运算放大器实现混频器的方法,感兴趣的朋友可以看看。
介绍了采用FPGA实现的各种矩阵运算的方法,是FPGA实现信号处理的基础。
函数运算的实现函数运算的实现函数运算的实现函数运算的实现函数运算的实现函数运算的实现函数运算的实现函数运算的实现函数运算的实现函数运算的实现函数运算的实现函数运算的实现函数运算的实现函数运算的实现函数...
计算器类: 设计一个计算器类模板,适用各类型表达式的“+、-、×、/” 数学四则运算以及“>、>=、<、、!=、==”等关系运算。数学四则运算表达式中可含有加、减、乘、除运算符以及各型数据的运算对象。程序可以直接...
本程序简单的实现了向量的四则运算,基于VC++平台测试成功,希望大家下载!
在FPGA中用verilog实现开方运算
C语言实现栈实现表达式运算的应用,很好用,有需要的来下载。
实现基本逻辑运算和常用复合逻辑运算的电子电路.pptx
Proteus 仿真运算器,验证74LS181的功能,使用了总线结构,实现8位运算,打开直接可运行。
适合在校大学生初步实验使用,将此程序直接粘贴到Matlab的m文件中,便可直接运行,得到结果,本人已在博客中发表“与”运算实验,神经网络网址如下https://blog.csdn.net/weixin_41529093/article/details/86713335...
实验一 二进制算法实现摸指数运算
集成运算放大器应用电路集.rar 集成运算放大器应用电路集.rar 集成运算放大器应用电路集.rar
用C语言实现复数的运算,在运算中利用结构体,来实现实部和虚部进而完成运算
基于Quartus II的运算器的设计与实现 基于Quartus II的运算器的设计与实现 基于Quartus II的运算器的设计与实现
c语言实现矩阵及其运算,gcc编译器
用C/C++语言实现计算机内部,运算器基本算术运算和逻辑运算,包括:原码一位乘法、补码一位乘法(Booth)、原码加减交替除法、补码加减交替除法、逻辑左右移位、逻辑与、逻辑或、逻辑非、逻辑异或。由控制器从ins_...
VERILOG实现的4位 ALU 模块实现 5种运算 加减 与或非