SPL 查询与报表计算实战指南

前言

查询和报表应用中常常涉及较复杂的运算,因为数据通常在数据库中,所以运算也通常用SQL来实施,但SQL有不少缺点,比如集合化不彻底,数据无序,难以分步计算,调试不便等,导致代码相当繁琐甚至写不出来,各种难题层出不穷。一个明显的例证,世界知名的IT问答网站stackoverflow.com几乎每天都有人发问寻求困难SQL的解法。

相比这这下,集算器SPL支持更彻底的集合化,天然有序,支持分步计算,便于调试,代码更好写,可以大幅简化计算难度。

SPL可以嵌入应用程序,连接数据库后从中读取数据,再实现复杂的运算,过程仅需要很简单的SQL用于读数据,从而可以避免难写的SQL

Picture1png
本文针对各类复杂的计算任务,分章节讲解 SPL 的解题方法,包括:保持分组子集、有序计算、相对位置、有序分组、动态行列转换等。
本文附带了若干 txt 文件,其中三个 txt 文件是大部分例题的公共数据集,分别是订单表、员工表、客户表。数据结构如下:

Picture2png
部分例题需要用非通用的数据集,用到时会特别说明。

目录

准备工作

基本常规运算

1 针对分组子集的运算和处理

2 和次序位置有关的运算

3 在有序情况下引用相邻的成员

4 与成员次序有关的分组

5 对齐外部集合的成员并进行分组

6 多层次的关联计算

7 各种行列转换和逆转换

8 多层Json的计算

9 分组后的集合运算

10 字符串集合的有序计算

11 时间日期序列的计算

12 按规则扩展出多条记录