Finereport中有一个自定义分组-分组报表可以解决这个需求:
1. 问题描述
通常情况下,数据是通过某一字段来进行分组,如日期字段,每个日期对应一个组,此时分组过于详细,希望按照年与周来分组显示。如下图:
数据库中存的是年月日格式的日期,如何按照年与周来进行分组呢?
2. 示例
2.1 新建报表,添加数据集
新建工作薄,添加数据集ds1,SQL语句为SELECT * FROM 订单。
2.2 表样设计
如下图制作报表,将字段拖拽至对应单元格,运货费数据设置为汇总>求和:
2.3 自定义公式分组
订购日期按“年”分组
选择A2单元格中的订购日期数据列,数据设置修改为分组>高级,点击后面的自定义按钮,d出自定义分组对话框,选择公式分组。
让该订购日期字段按照“年”来分组,如下图:
订购日期按“周”分组
选择B2单元格的订购日期数据列,数据设置修改为分组>高级,点击后面的自定义按钮,d出自定义分组对话框,选择公式分组。
让该订购日期字段按照“周”来分组,如下图:
3. 保存并预览
保存模板,最终效果如上图。
需要用group by语句来统计。
1、创建测试表、插入数据:
create table test(id int,
name varchar(10),
score int,
classname varchar(20))
insert into test values (1,'张三',100,'一班')
insert into test values (2,'李四',89,'一班')
insert into test values (3,'王五',97,'一班')
insert into test values (4,'赵六',87,'二班')
insert into test values (5,'孙七',94,'二班')
insert into test values (6,'杨八',76,'二班')
2、查询每个班级的总分,可用如下语句:
select classname,SUM(score) as 总分 from test group by classname3、结果截图:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)