分享

用sql实现数据透视表的多表汇总

 凤凰吹笙 2016-11-22

如果有多个表,存在相同列,想把这些数据汇总到一个表里面进行各种统计怎么办?

excel里面有个插件-powerpivot可以实现,但是需要下载;access也可以,但是需要花钱买,可不可以在现有的EXCEL表里实现呢

有,用SQL就可以实现

利用SQL建立数据透视表的方法如下

首先新建一个sheet,用于创造数据透视表

然后点击数据-现有连接创建连接,如图

找到当前的工作表,打开

选择刚刚新建的创建数据透视表的sheet

在弹出的导入数据对话框进行如下设置

单机属性后在弹出的连接属性对话框输入命令文本

返回导入数据对话框,单击确定,即可生成数据透视表

再给大家介绍下与数据透视表配合使用的SQL的常用结构

SELECT 字段名1,字段名2,,字段名n FROM [1$]

UNION ALL

SELECT 字段名1,字段名2,,字段名n FROM [2$]

UNION ALL

SELECT 字段名1,字段名2,,字段名n FROM [n$]

其中红色的是构成SQL的关键字,是构成SQL的骨架,可以从字面理解其含义,一般大小写均可,在同一行中需要与其他内容保持一个空格的距离

黑色的部分根据表的字段名、表名自行编写

比如我们以每个区域建立一个sheet,想汇总所有区域的数据,数据如下

(注:每个表第一行必须是字段名,如果不是,请把上方表头删除,表头尽量简单,不要有自动换行或括弧等符号)

使用的语句如下

SELECT 省份,区域,城市,城市级别,市城镇人口milion,市购买力milion FROM [东北$]

UNION ALL

SELECT 省份,区域,城市,城市级别,市城镇人口milion,市购买力milion FROM [华北$]

UNION ALL

SELECT 省份,区域,城市,城市级别,市城镇人口milion,市购买力milion FROM [华东$]

UNION ALL

SELECT 省份,区域,城市,城市级别,市城镇人口milion,市购买力milion FROM [华南$]

UNION ALL

SELECT 省份,区域,城市,城市级别,市城镇人口milion,市购买力milion FROM [华中$]

UNION ALL

SELECT 省份,区域,城市,城市级别,市城镇人口milion,市购买力milion FROM [西北$]

UNION ALL

SELECT 省份,区域,城市,城市级别,市城镇人口milion,市购买力milion FROM [西南$]

使用此语句每列顺序可以不一样,只要字段名(表头)一样就可以了

由于这些区域表头完全相同,还可以使用更加简单的sql语句

SELECT * FROM [东北$]

UNION ALL

SELECT * FROM [华北$]

UNION ALL

SELECT * FROM [华东$]

UNION ALL

SELECT * FROM [华南$]

UNION ALL

SELECT * FROM [华中$]

UNION ALL

SELECT * FROM [西北$]

UNION ALL

SELECT * FROM [西南$]

其中*代表全部字段(列)的意思

汇总后数据透视表如下

如果我把每页的区域列删掉,但是汇总的时候想加上区域字段怎么办?

用如下语句

SELECT "东北" AS 区域,* FROM [东北$]

UNION ALL

SELECT "华北" AS 区域,* FROM [华北$]

UNION ALL

SELECT "华东" AS 区域,* FROM [华东$]

UNION ALL

SELECT "华南" AS 区域,* FROM [华南$]

UNION ALL

SELECT "华中" AS 区域,* FROM [华中$]

UNION ALL

SELECT "西北" AS 区域,* FROM [西北$]

UNION ALL

SELECT "西南" AS 区域,* FROM [西南$]

AS前面代表各个表所属的区域,AS后面代表汇总后数据透视表的字段名,文本需要加英文双引号

汇总后的数据透视表如下,区域字段又回来了

如果想汇总不同结构的数据表格,也可以用sql实现,举一个简单的栗子,汇总如下两个店的库存数据

使用如下语句

select 分店1商品 as 商品,库存 from [分店1$]

union all

select 分店2商品 as 商品,库存 from [分店2$]

as 前面是各个表的字段名,as后面是数据透视表里面汇总用的统一字段名

汇总结果如下

用如上这些sql语句汇总的数据透视表,由于选择的是整个列的数据,明细新增一条记录的时候只要点击刷新就能把新增数据汇总进来,比如我们在分店1的库存里面加包辣条,在之前的数据透视表里面点击下刷新数据就更新了

关于更多数据透视表的内容,请关注我的微信公众号,molyexcel

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多