开源中文网

您的位置: 首页 > Access > 正文

向Access学SQL,将一维表变成二维表

来源: Excel之家  作者: 佚名

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查询中。小伙伴们,根据这个语句,你想到什么好的应用方式了吗?

Tags:一维 二维
相关文章列表:
关于开源中文网 - 联系我们 - 广告服务 - 网站地图 - 版权声明