ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2107|回复: 7

[Excel基础] 学习笔记SQL增加新汇总字段

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-5-19 11:34 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 孤独行者 于 2013-5-19 11:52 编辑

数据源表中,有三个大类:袜子、帽子、拖鞋;每个大类下又有都有几种商品。
但是,数据源表中,没有划分大类的列,在做透视表时,需要按大类汇总。
用刚学的一段SQL文本命令,可以达到要求。
值班表如下:
月份城市名称规格类别销售数量
7月广州袜子单色359
7月武汉袜子黑色男535   
7月青岛帽子带边890   
7月广州拖鞋带跟红色605   
7月青岛拖鞋带跟黑色331   
8月广州袜子单色297   
8月青岛袜子红色女705   
8月武汉袜子黑色男308   
8月青岛帽子带边995   
8月武汉帽子针织960   
8月广州拖鞋带跟红色360   
9月广州袜子单色1021   
9月青岛袜子红色女547   
9月广州袜子黄色女658   
9月青岛帽子带边319   
9月广州拖鞋带跟红色884   
9月青岛拖鞋带跟黑色778   
10月广州袜子单色506   
10月武汉袜子黑色男392   
10月广州袜子黄色女494   
10月武汉帽子针织582   
10月广州拖鞋带跟红色642   
操作步骤:
1   插入数据透视表
2  使用外部数据源/选择连接
3  浏览更多,查找文件路径(可先复制文件路径,再粘贴到搜索栏)
4  选取文件,确定
5  选取文件中的表
6  在数据透视表中,拖放字段(上面几步都是与原来一样操作)。
7  单击透视表/选项/更改数据源
8  连接属性/定/命令文本
9  将原来的命令文本更改为:select  *,left(名称规格,2) as 商品 from[SQL透视示例
     left语句留下名称规格列中的2个字(这里的帽子、拖鞋、袜子都正好是2个字)
10 用新字段”商品“,替换旧字段”名称规格“。

SQL替换求和字段.zip (6.11 KB, 下载次数: 46)






该贴已经同步到 孤独行者的微博

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-5-19 11:57 | 显示全部楼层
感谢你的无私奉献,希望后面有更精彩的继续。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-5-20 20:24 | 显示全部楼层
SELECT语法
select 字段1,字段2,... from[表名$]
语法解释:select(英文空格)字段1(英文逗号)字段2(英文逗号)字段N(英文逗号)from[表名$]
               select意思是选择,from意思是来自  (朋友们不要发笑,本人不会英文。学函数也是这样!)
              整个语句就是: 选择 字段1,字段2,字段N 从哪个表

上面的例子中,在SQL数透示例表H1中,我想把城市、名称规格、销售数量三个字段用SQL语句调出来。
操作步骤:数据/现有连接/浏览更多,选择路径,选择工作簿,选择表,....导入数据/属性/连接属性/定义/命令文本,写入下面的语句。
这样写:select 城市,名称规格,销售数量 from[SQL数透示例$]
得到下面的右边的表;
selcel语句.gif
如果要更改SQL语句,可以在表中任意单元格点右键,表格/编辑查询,然后更改“命令文本”。
另:在其他工作表里,应该也可以这样操作。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-5-20 20:37 | 显示全部楼层
如果要查询所有字段(相当于导入整个表)。则可以用*号代替所有字段,写成:
select * from[表名$]

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-5-20 20:47 | 显示全部楼层
如果要查询表中的部份区域,比如说,只查询A1到E20区域,则写成:
select 字段1,字段2,... from[表名$A1:E20]

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-5-20 21:08 | 显示全部楼层
如果想取不重复记录,用distinct
比如,上面例子中取城市的不重复记录,
select distinct 城市 from[SQL数透示例$]

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-5-20 21:12 | 显示全部楼层
如果写成:select distinct 城市 销售数量 from[SQL数透示例$]
那么就会出现两个字段:城市、销售数量。因为销售数量不是重复记录。
但是城市列会将相同的记录都放在一起。按照拼音顺序排列。

TA的精华主题

TA的得分主题

发表于 2013-5-26 21:01 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
感谢楼主分享
回帖是一种美德
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-12 19:31 , Processed in 0.048802 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表