Excel数据透视表(九)

SQL语句

今天的开篇写一点非主流的内容。SQL语言是一种关系型数据库的程序设计语言,它其中的一个重要功能,是可以对数据库内容进行查询统计。

在众多的SQL语句中,Select语句是使用最频繁的一个,它主要是对数据按指定条件进行查询。

Select语句的语法:

Select字段列表

From子句

[Where子句]

[Group By子句]

[Having子句]

[Order By子句]

说明如下:

1、字段列表:

可以是一个字段,也可以是多个字段。多个字段之间须用逗号“,”来分隔;

“*”可代表所有字段;

如果字段来自不同的表,可以用“表名.字段名”的方式来表示引用哪个表的字段;

使用As属性词,确定表中没有出现的字段,即自定义字段。如果此字段是文本,则须用英文单引号括起来,例如:’东北’ As区域,意思就是自定义一个新的字段“区域”,并将东北作为该字段的数据内容。

2、From子句

From子句是Select语句的唯一必须子句,指定查询的出处;

可以指定一个工作表,也可以指定多个工作表,多表之间同样须用逗号“,”来分隔;

如果查询的是工作薄的数据表(外链),那么需要写成[工作表名$];

如果查询的是Access或者SQLserver数据库的数据表(table),可以直接写数据表名。

3、Where子句

Where子句是可选子句,指定查询的条件;

可以使用SQL的运算符组成条件,例如:金额>8000、日期=#2018-1-1#。注意日期必须加上#或者英文单引号括起来。

4、Group By子句

Group By子句是可选子句,功能为分组,例如:Group By性别,表示按性别分组。

5、Having子句

Having子句是可选子句,必须和GroupBy子句连用。和Where子句的功能一样,也是表示条件的作用,例如:Group By性别Having工资>5000,表示工资大于5000的数据,按性别分组列出。

6、Order By子句

Order By子句是可选子句,功能为排序的方式,ASC是升序,DESC是降序。例如:Order By日期ASC,就是把日期按升序排序返回列表。

除了Select语句以外,我们还应该了解Join…On子句(连接多个表)和Union语句(连接Select语句)。

特别说一下,Union语句会忽略重复值汇总,如果计算重复值的时候,我们应该使用Union All语句。

SQL语句在数据透视表中的应用

了解了SQL的用法之后,即便再强大的功能,如果不知道它的应用也是枉然。

需求:跨工作薄引用多个工作表。

这个需求,相信大家都不会陌生吧,而且是一个相当头疼的过程,即便是会编写VBA的遍历工作薄代码,相信数据多的时候也会有些卡慢。此时我们就可以使用SQL来制作数据透视表。

具体做法如下:

Step 1:在任意本地位置新建一个汇总表;

Step 2:在工具栏中按下图选择:

Step 3:选择其中的一张表,点击“打开”按钮,此时就打开了“选择表格”菜单,此菜单列出了这个工作薄中所有的工作表;

Setp 4:选择其中的一张,例如1月份,大家可以看出,此时的表中已经自带$符号了,点击确定,弹出“导入数据”按钮;

Step 5:选择”数据透视表“,设置放置位置,点击确定按钮,就来到了我们熟悉的数据透视表的布局阶段。布置好字段后如下:

我们的需求是跨薄来引用,我们以三年的1月份工资汇总为例做个说明。

Step 6:选中数据透视表区域,在分析工具栏中,点击“更改数据源”——“连接属性”;

Step 7:在”命令文本“中输入SQL语句,语句如下;

select * from [D:\工资\2016.xlsx].[1月份$]

union all

select * from [D:\工资\2017.xlsx].[1月份$]

union all

select * from [D:\工资\2018.xlsx].[1月份$]

为了测试数据,2016-2018年的3个工作薄,作者做的是一样的数据,所以这个合计如果是刚才的3倍就是正确的了。

编后语:

SQL的功能也是非常强大的,Office的Access数据库,SQLserver数据库都是使用的SQL语句,即便是我们使用Excel也是大有用武之地。有兴趣的表友,赶紧操作试一下吧。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181101A1KVOR00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券