SQL,全称叫Structured Query Language,结构化查询语言。SQL在Excel处理时可以发挥十分重要的作用,尤其是在处理大量数据时很有优势。所以我们有必要学习、了解一些SQL的知识和具体用法。大家都知道Office软件中还有一个十分有用的小型数据库软件Access,今天我们就向Access取经,学习一个经典SQL语句,将一维表变成二维表。
比如,在数据库中有以下销售记录的表。
我们希望做成如下所示的汇总表。这个表的特点是,“产品名称”在第一列,月份变成了列字段,类似于做了数据透视,将“月份”字段拖到了列字段上。
下面我们介绍一下详细步骤。
在Access中点击【创建】选项卡中的“查询向导”,在第一步中选择“交叉表查询向导”。
在下一步的对话框中选择“销售记录”表。
在下一步对话框中选中“产品名称”字段,点击按钮添加到右侧“选定字段”列表中,这是作为行字段来显示的。
在下一步中选择“月份”作为列字段。
在下一步中选择“数量”作为值字段,计算方式选择“总数”。
在最后一步中选择“查看查询”,查询名称保存为“销售汇总”。
点击“完成”后打开查询结果如下。
这时,我们来看看Access中自动生成的SQL语句。
在“销售汇总”标签上点击右键菜单中的“SQL视图”,可以查看自动生成的SQL语句。
这个语句中有两个关键的地方:Transform和Pivot。
Transform后面跟着的是汇总的值字段,Pivot后面跟着的是列字段,中间的Select...From...Group by...是我们常见的查询语句。
TRANSFORM Sum(销售记录.[数量]) AS 数量之合计
SELECT 销售记录.[产品名称], Sum(销售记录.[数量]) AS [总计 数量]
FROM 销售记录
GROUP BY 销售记录.[产品名称]
PIVOT 销售记录.[月份];
我们看到上面的查询结果中有一列是汇总的,如果要取消这一项,只需要将Select语句中的Sum项删掉即可,如下示例。
TRANSFORM Sum(销售记录.[数量]) AS 数量之合计
SELECT 销售记录.[产品名称]
FROM 销售记录
GROUP BY 销售记录.[产品名称]
PIVOT 销售记录.[月份];
通过这个示例,我们应该就比较容易理解Transform...Pivot...语句的作用和可以实现的效果了。中间的Select语句我们还可以根据需要更改为更复杂的查询语句,比如Union、Join查询等。
类似的SQL语句也可以直接应用到Excel的SQL查询中。小伙伴们,根据这个语句,你想到什么好的应用方式了吗?
--End--
联系客服