概述

报表是用表格、图表等格式来展现数据的工具,不仅格式多样,其中数据更是要体现出动态的效果。其中,分组报表是常见的一种类型,包括按区域、产品类别、客户、年度、季度、月份等不同条件分组。

上图是一个典型的规则分组情况,另外还有一些不规则的分组情况,典型情况就是按段分组,比如时间段、年龄段等,也就是按照某个值区间完成记录分组。

上图的例子中我们可以看到,分别统计了 “2012 年圣诞前”、“2012 年圣诞–2013 年国庆”、“2013 年国庆–2014 年五一”、“2014 年五一以后” 四个时间段各地区的订单情况。

目前,常见的报表工具(包括开源、商业报表)都可以轻松制作规则分组报表,但对于不规则的就会吃力了,甚至直接做不了。在国内报表工具中,做的相对较好是润乾和帆软,它们解决此类报表都没什么问题,只是做法上有所不同,接下来我们分别用两款产品介绍这类报表的制作过程,供大家对比参考。

注:例子均采用各产品自带数据库的“订单表”为例,表样如上图。

润乾报表做法

1、准备数据集

SELECT 订单. 订单 ID, 订单. 订购日期, 订单. 订单金额, 订单. 货主地区 FROM 订单

2、定义报表参数

按照报表制作的通用性标准,按时间段分组常常是动态区间,因此我们通过定义参

数,给报表动态的分组时间段。

参数 arg1:参数类型“日期组”,值为“2012-12-25, 2013-10-1, 2014-5-1”;

参数 arg2:参数类型“字符串组”,值为“2012 年圣诞前”、“2012 年圣诞–2013 年国庆”、“2013 年国庆–2014 年五一”、“2014 年五一以后” 。

说明:arg1 为分段的 3 个时间点,arg2 则为分成的 4 个区间。

3、制作报表

模板如下:

其中:

(1)A3:ds1.group(货主地区:-1)

(2)B1:ds1.plot(订购日期,arg1),润乾封装的不规则分组函数

B1 的显示值表达式:map(to(0,count(arg1)+1),arg2)

另外,将 B1 的扩展方式设置为横向扩展

(3)B3:ds1.count()

(4)C3:ds1.sum(订单金额)

4、看效果

预览报表

** 帆软报表做法       **

1、准备数据集

SELECT 订单. 订单 ID, 订单. 订购日期, 订单明细. 数量, 订单明细. 数量订单明细. 单价订单明细. 折扣 金额, 客户. 地区 FROM S 订单明细 订单明细,S 订单 订单,S 客户 客户 WHERE  客户. 客户 ID = 订单. 客户 ID  AND  订单. 订单 ID = 订单明细. 订单 ID

2、制作报表

模板如下

A4:ds1.G(地区)

B2:ds1.G(订购日期)

B4:ds1. 个数 (订单 ID)

C4:ds1. 求和 (金额)

3、定义不规则分组列表

因为没有封装不规则分组函数,所以只能针对性的定义分组列表实现,如下。

选中 B2 单元格,单元格元素 -- 数据设置,选择“高级”-- “自定义”

分别定义各分组区间名称及条件表达式,列表如下

(1)2010 年圣诞前

(2)2010 年圣诞–2011 年国庆

(3)2011 年国庆–2012 年五一

(4)2012 年五一以后

这一步需要逐个定义,因此略显麻烦,而且不太容易维护,灵活性较差。

4、看效果

总结:对于国内的商业报表,解决中国式复杂报表是标配的能力。从上面的例子我们不难看出,对于不规则分组的报表需求来说,各厂商也有各自的解决方案,只不过做法不同,略有优劣。对于用户来说,应该根据需求、使用习惯、设计制作能力等方面来选择更适合自己的产品。本例仅作为按段分组报表功能供用户参考对比,欢迎指正。

润乾报表分组求和_中国式复杂报表:按段分组报表制作对比(润乾 vs 帆软)...相关推荐

  1. sql 分组求和_《从零学会SQL-第七关高级功能》课后练习

    一.窗口函数 1.窗口函数的概念:窗口函数也叫OLAP函数(online anallytical processing,联机分析处理),可以对数据库的数据进行实时分析处理. 2.窗口函数的语法如下: ...

  2. access 分组序号_二级Access数据库备考笔记之报表排序和分组

    时 间:2012-08-17 12:50:26 作 者:摘 要:二级Access数据库备考笔记之报表排序和分组 正 文: 报表排序和分组 缺省情况下,报表中的记录是按照自然顺序,即数据输入的先后顺序排 ...

  3. c语言分组求和函数,R语言 实现data.frame 分组计数、求和等

    df为1个data.frame对象,有stratum和psu两列,这里统计stratum列计数 方法1: cnt = table(df$stratum) 方法2: cnt = tapply(df$ps ...

  4. 润乾报表分组求和_一招搞定各种报表合计需求

    一.常用合计方案 在有专业报表工具之前,常用的实现方案有: 1) SQL "select sum(字段) from 表 group by 字段 order by 字段"可以实现简单 ...

  5. 润乾报表分组求和_实现报表数据预先计算

    报表应用中,如果数据量较大或计算过程较复杂,往往会导致报表数据源准备过慢,从而影响报表性能.这种情况下可以预先计算报表需要的数据,在呈现时直接引用,使得用户在访问报表时可以迅速地获得响应. 一.当前的 ...

  6. sql 分组求和_从零学会SQL:汇总分析 D3

    2020年3月24日 星期二 大纲: 汇总分析: 分组: 对分组结果指定条件: 用sql解决业务问题: 对查询结果排序: 如何看懂报错信息. 1 汇总分析 汇总函数 count:求某列的行数: 计算教 ...

  7. sql 分组求和_数据仓库工具–Hive(归纳笔记第六部分:SQL练习)

    写在开头: 本章是Hive教程第六部分,着重于归纳SQL编写. 文章内容输出来源:拉勾教育大数据高薪训练营. 本章将介绍Hive中常见的面试题和自己的解答思路,以供大家训练和记忆. SQL面试题 1. ...

  8. oracle 同一列数据不同条件分组求和_艾瑞教育:有关Oracle数据库,你需要知道的几件事...

    Oracle 一.Oracle数据库在存储过程中,如何在字符串中使用变量? 例:select to_char(sysdate,'yyyymmdd') into v_yyyymmdd from dual ...

  9. list 分组求和_数据分析-python-分组聚合-2

    本文主要目的:了解数据分组聚合,熟悉pivot_table函数,应用于数据处理,提高数据处理效率 同Excel数据透视表方法 在Excel中我们可以轻而易举地实现数据透视表功能,"插入--数 ...

  10. python分组求和_如何对某一列自动分组,统计求和

    对 v2 列分组,映射成分组 ID 列,然后做平均值统计便可. 请参考以下代码 ''' 按区间对某列做分组,然后统计各组的另一列的平均值. author: 李毅 ''' import numpy as ...

最新文章

  1. Java中Map用法详解
  2. activity属性设置大全
  3. 一文读懂Faster R-CNN目标检测
  4. webwork2.2.4+spring配制方式总结
  5. python安装环境配置linux_linux下安装python环境
  6. 号称最安全的苹果TEE被黑客攻破了,怎么办?
  7. Strom程序的并发机制,配置并行度(代码实现)、动态改变并行度,local or shuffle分组,分组的概念以及分组类型
  8. 对用户数据进行简单的管理用,C++实现几个字符串的字典序排序
  9. 哥尼斯堡的“七桥问题” (25 分)【欧拉回路模板题】
  10. qdialog 返回值_c – QDialog exec()并获取结果值
  11. PyCharm配置Docker
  12. sh文件进行qsub提交任务到远程服务器训练
  13. 计算机老师一句话,40句感恩教师的一句话
  14. Scrum和TFS2010
  15. U盘“请将磁盘插入U盘”的问题
  16. wordpress创建_如何在WordPress中创建专业的在线简历
  17. 应用程序安装在sd卡还是内存选择及设置
  18. 麒麟V10SP1高级服务器版本操作系统离线安装docker容器技术
  19. python反爬虫原理与绕过实战pdf-antispider
  20. KITTI如何submit自己的模型效果

热门文章

  1. 微信小程序开发入门与实践
  2. cocos2dx 制作单机麻将(四)
  3. [Android自定义控件] Android自定义控件
  4. linux mongo 搭建+集群
  5. IOS开发之自定义键盘
  6. python 字符编码详解
  7. C#ToString() 格式化数值
  8. Amoeba Architecture
  9. 12.软件架构设计:大型网站技术架构与业务架构融合之道 --- CAP理论
  10. 7.企业安全建设入门(基于开源软件打造企业网络安全) --- 蜜罐与攻击欺骗