注意事项:由于设计器内置的是 Sqlite 数据库,在使用上很多语法都不支持,请将sqlite数据库文件迁移到主流数据库(MySQL、MSSQL、Oracle…)后运行。 迁移方法:使用第三方软件迁移内置FRDemo数据库到指定数据库 本文运行环境:Microsoft SQL Server 2012 - 11.0.2100.60 (X64) Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
1. 描述【逐层累计】是每一组中将每层与上一层数据相加,得到这一层的累计结果。【跨层累计】不是每组分别累计,而是从第二组开始在上一组的累计结果上继续累计。除了通过单元格设置实现此功能外,我们接下来介绍一种直接在数据集中实现的新方法,如下图: ![]()
2. 思路在创建数据集时用sql的开窗排名函数【ROW_NUMBER() OVER (ORDER BY)】处理,然后进行字段的直接调用。 SELECT t.*,sum(t.销量) over(order by t.年份,t.月份) as 年度累计 FROM 大陆车辆销售 t;
3. 实例3.1 实测数据打开设计器自带的 FRDemo 库中的【大陆汽车销售】表: ![]()
3.2 跨层累计脚本SELECT t.*, SUM (t.销量) OVER (ORDER BY t.年份, t.月份) AS 年度累计 FROM 大陆车辆销售 t;
3.3 效果预览执行上述 SQL 脚本,效果如下: ![]()
注: 请注意区分【逐层累计】与【跨层累计】
|