知识库

推荐内容

快逸做的更好

产品优势

您的位置: 首页 > 知识库 > 设计基础 > 在快逸报表统计图中拼凑出”其他”项

在快逸报表统计图中拼凑出”其他”项

在使用统计图的过程中,用户会有这样的需求,即将数量最多的若干项和数量较小的几项汇总生成的”其他”项一起生成统计图。如数据在数据库中是每个省份对应一条记录,而用户希望在统计图中实现显示对应数量最多的3个省份,然后把其他省份的数据汇总到一起,形成统计图中的”其他”项。

下面的例子演示如何在快逸报表中拼凑出其他项。

要实现上面需求最关键的就是在数据集中写sql语句,构造出需要的数据集效果。

第一步:连接数据源,查看数据构造形式。

点击菜单栏上的配置-数据源,连接到demo数据源然后增加一个数据集,把所有数据select出来,sql语句为:SELECT sum(订单.运货费) as 运货费,订单.货主地区 FROM 订单 group by 订单.货主地区 order by sum(订单.运货费) desc

这段sql的含义是按地区分组,汇总运货费,然后把数据按降序排序,得到的数据如下图所示:

第二步:取出运货费最多的三个地区。

对应的sql为:SELECT top 3 sum(订单.运货费) as 运货费,订单.货主地区 FROM 订单 group by 订单.货主地区 order by sum(订单.运货费) desc,这样的得到的数据如下图所示:

第三步:将其他地区的数据汇总到一起。

将其他省份的数据汇总到一起,对应的sql为:SELECt ‘其他’ as 地区 ,sum(运货费) as 运货费 from (SELECT top 5 sum(订单.运货费) as 运货费,订单.货主地区 FROM 订单 group by 订单.货主地区 order by sum(订单.运货费) asc)

这段的sql的含义为先查询出运货费最少的5个省份,然后对这5个省份进行汇总起名字为其他,对应的数据为:

第四步:把上面的两组数据汇总到一起,使用union的方式,汇总的sql为:

SELECT top 3 订单.货主地区 as 地区,sum(订单.运货费) as 运货费 FROM 订单 group by 订单.货主地区 order by sum(订单.运货费) desc union SELECt ‘其他’ as 地区 ,sum(运货费) as 运货费 from (SELECT top 5 sum(订单.运货费) as 运货费,订单.货主地区 FROM 订单 group by 订单.货主地区 order by sum(订单.运货费) asc)

数据集得到的结果集如下图所示:

这样数据集就构造好了。

第五步,制作报表和统计图。

制作一张报表,A1单元格的表达式为:ds1.select(地区),B1单元的表达式为ds1.运货费,然后如下图所示在报表A2单元格中添加一个统计图,此处采用三维饼状图,统计图的具体设置方式如下图所示:

在图形特性选项卡中设置图中显示数据为百分比,然后点击确定,浏览报表的数据,结果如下图所示:

这样就实现了在三维饼形图中实现取出对应数量最多的3个地区,然后把其他地区的数据汇总到一起,成为统计图中的”其他”项并一起显示在统计图中的需求。

本文标签:
发布日期:2010/06/02
本文分类: 设计基础