标题：Excel 2010 SQL完全应用
图书信息
Excel 疑难千寻千解丛书  Excel 2010 SQL完全应用(含CD光盘1张) 
林盘生等编著
ISBN 978-7-121-14037-2
2011年8月出版
定价：69.00元（含光盘1张）
16开
496页
宣传语
ExcelTip net出品
微软全球最有价值专家力作
内 容 提 要
本书是“Excel疑难千寻千解”丛书之一，为读者展示了在Excel 2010中运用SQL语句解决疑难问题的实战技巧。本书包含SQL基础入门、运算符、常用函数、日期、排序、聚合函数、连接查询、子查询、SQL与数据透视表、SQL与VBA等方面的应用技巧，以及SQL语句的综合应用。
本书包括200个疑难案例，每个疑难都包含一个或多个解决方案，并融入了一个或多个知识点的讲解。在解决问题的同时，引导读者学习Excel 2010中SQL应用的原理和扩展知识。书中还介绍了SQL的部分通用语句，读者可以直接应用于实际工作中。阅读本书后，不仅有助于提升读者在SQL运用方面的理论水平和综合实战能力，还有助于解决读者在实际工作中可能出现的诸多难题，提高工作效率。
本书非常全面地阐述了SQL语言在Excel中的应用，SQL语法介绍具体全面，案例贴近实际，讲解深入透彻，帮助读者更加深入了解SQL语言，同时也揭开了SQL语言在Excel中使用的神秘面纱。
自 序
寻，是一种尺度。古时八尺为一寻，王安石诗云“飞来峰上千寻塔，闻说鸡鸣见日升”，用以形容飞来峰上塔之极高。
寻，是一种技巧。现今的网络为自学者提供了非常巨大的资源平台，但缺乏技巧的查询和求助，往往“众里寻他千百度”却难有“蓦然回首”的顿悟。而善用关键词搜索，则常可使人体会到“灯火阑珊”之美景。
寻，是一种追求。网络上活跃着这么一群人，他们曾经也是懵懂的菜鸟，在寻解获助时心存感激，在寻师问道时心怀崇敬。渐渐地，他们因互助的理念而聚集，相互扶持，坚持不懈地学习、实践与创新。面对一个个技术的据高点，他们是睿智而无私的“寻者”，壁立千寻敢登攀，寻根究底解疑难！
寻，是一种心境。求知探秘当志存华山论剑之高远，解决问题应意守无剑无招之寻常，这便是“寻者”修炼的心境。来者是客，有问必答，不慕华丽的招式，但求直击问题之根源，用简单的方法办成复杂的事情。
本丛书的作者就是这样的一群“寻者”。在长期的线上答疑、线下交流和培训活动中，他们接触过针对同一类问题千奇百怪的提问，深知许多人苦寻而不得的要害，甚至练就了一手仅根据含混不清的提问就能进行猜题、解题的本领。通过不断地积累与整理，Excel技巧网（ExcelTip Net技术社区）的版主们推出了“Excel疑难千寻千解”系列丛书，这些“疑难”都是许多人曾经搜索和提问过的，也是大多数用户在工作中可能会遇到的一些寻常问题。书中案例涉及行政办公、人力资源、金融财务、经济统计、学校教育、工程技术、医疗卫生、质量管理、生产管理等多个领域，并根据Excel的主要功能分册整理成书。
在丛书编著过程中，“实用为王”的原则贯彻始终，所有案例都遵循实际工作场景和知识点解说紧密结合的主线，抛开一些华而不实、艰难晦涩的高深解法，而将基础理论和解决方案寓于寻常技巧之中，让读者能得其用、明其理，以期实现为更多的人解决更多问题的简单愿景。
寻  者  
前 言
感谢您选择“Excel 疑难千寻千解”丛书之《Excel 2010 SQL 完全应用》！
Excel 2010具有强大的运算与分析能力。从Excel 2007开始，改进的功能区使操作更直观、更快捷，实现了质的飞跃。不过需要进一步提升效率、实现自动化，单靠功能区的菜单功能是远远不够的。在Excel中使用SQL语句，可以灵活地对数据进行整理、计算、汇总、查询、分析等处理，尤其在面对大数据量的工作表的时候，SQL语言能够发挥其更大的威力，快速提高读者的办公效率。
丛书介绍
“Excel 疑难千寻千解”丛书是由Excel技巧网（ExcelTip Net技术社区）的负责人、微软最有价值专家（MVP）黄朝阳先生策划并组织编写的一套系列书籍。
Excel技巧网旨在重点推广Excel 2010及今后更高版本的应用，并为广大的Excel爱好者提供一个内容充实、分类清晰、经典实用、精彩纷呈、互惠学习、友好交流的平台。社区成立不久便吸引了众多微软MVP和有志于推广电子表格应用技术的高手驻足，长期为网友免费解答疑难问题，并勤于将精彩的答疑帖子按其所涉及的知识和应用两个维度，整理成为原创技术文章。
社区设有讨论、文章、资源三大技术专区，并按照Excel的功能归属将主题划分为基础应用、数据透视表、条件格式、函数与公式、图表与图形、VBA、SQL in Excel、综合应用等方面，本丛书的各读本正是基于相近的主题分类。
本丛书由黄朝阳、王建发、陈国良、荣胜军、陈树青等微软MVP以及罗刚君、李术彬、林盘生、章兰新、李懿等多位社区资深版主联手打造，将来还将邀请更多高级会员加盟参与丛书其他读本的创作。其中《Excel 2010操作与技巧》、《Excel 2010函数与公式》、《Excel 2010 VBA编程与实践》已先于2010年12月出版，再次推出让读者们期待已久的《Excel 2010 SQL 完全应用》读本。近期，还将陆续推出《Excel 2010 数据透视表》、《Excel 2010 图表与图形》等其他读本。
得益于多年来在社区答疑中的磨砺，作者们将丰富的实战经验付诸笔端，精心设计了上千案例，将Excel方方面面的知识点融入其中。每个案例都采用一般用户遇到疑难时最可能的提问方式和应用场景对问题进行描述，提供具有针对性的解决方案和详尽的操作步骤，并配合以原理分析和知识扩展环节，既授人以鱼，又授人以渔。丛书全系提供“疑难”加“知识点”的特色目录索引，方便读者根据需要快速地查找。对于渴望学习和掌握新知识的Excel用户来说，与其千百次地找寻问题答案，不如静心地读此丛书一卷。
读者对象
本书的写作基于Microsoft Office Excel 2010专业版，尽管一些SQL语句可能在Excel 97-2007等早期版本中不能直接使用，但依然能够为读者提供思路方面的借鉴。
本书通过200个疑难案例，其中包括了3个大型综合应用，展示了SQL语言在Excel中的高效应用，适合没有或者只有极少SQL语言使用经验的读者，同时也适合所有办公制表人士，特别是经常制作Excel财务报表、经营分析报表等人士，可借以大幅提升工作效率。本书提供的知识与疑难案例都是从最基础、最常见的问题开始阐述，并辅以解题思路与原理分析，读者可以通过书中现有的案例进行拓展，解决更多类似的问题。如果您是较少接触SQL语言的用户，可以参考本书案例中的疑难场景，直接编写相关的SQL语句在Excel中，只需要单击刷新，即可把相关的数据快速更新到您的表格中；如果您对SQL语言有了一定的了解，则可以通过学习本书案例中的解决方案，掌握更多知识点和使用技巧，全面地提升应用SQL语言解决实际工作问题的能力。
阅读指南
本书共包括11章，涉及了SQL在Excel中应用的各个方面。其中，第1章为基础入门，第2至7章为SQL的语言结构应用的疑难问题及解决方案，第8章为子查询，第9章为SQL与数据透视表组合的应用，第10章为SQL与VBA的组合应用。各章根据所涉及知识点的不同，精心设计了数十个案例，并为读者准备了相应的思考题和练习题。第11章为综合应用，讲述了运用SQL解决报表分析及构建综合查询系统的思路及方法。
各章节的内容简介如下：
第1章  SQL基础入门
本章主要介绍Excel下的SQL操作环境、SQL语句的基础概念以及SQL查询入门，引导读者学习及掌握Excel中的SQL语言的运用，并且能编写出最基本的SQL语句。
第2章  SQL运算符使用
本章主要介绍Excel SQL中比较运算符、逻辑运算符、连接运算符和算术运算符的使用方法，引导读者在进行SQL查询时随心所欲地根据单个或多个条件找出所需要的特定数据。
第3章  SQL常见函数使用
本章主要介绍SQL查询中可能用到的基本函数，主要涉及到字符串函数、算术函数、转换函数及其他函数，帮助读者进一步加深对SQL语句的认识并可运用SQL基本函数解决一些实际工作中遇到的问题。
第4章  SQL日期和时间函数使用
本章主要介绍SQL中日期和时间函数的使用，熟练掌握日期和时间函数的使用，可以方便地按月、年汇总和查询，还可以查询和汇总某特殊时间段的数据，或者可以获取某些特殊的日期。
第5章  SQL排序查询
本章主要介绍SQL排序查询，利用排序查询的技巧可以实现数据的顺序排列，也可以找出指定位置的记录，得到记录的排名等。
第6章  聚合函数与分组统计
本章主要介绍Excel中数据求和、计数、求均值、GROUP BY分组统计等方面的知识，解答用户在工作中最常见的SQL疑难问题，引导读者轻松掌握SQL的统计汇总技术。
第7章  连接查询
本章主要讨论内连接、外连接、交叉连接及自连接等方面的疑难问题，引导用户轻松地掌握SQL中最常见的多表连接方面的知识。
第8章  子查询
本章通过对简单子查询、复杂子查询等经典案例的讲解，帮助读者深入了解子查询的知识。
第9章  SQL与数据透视表
本章首先介绍数据透视表的一些常用的操作，让用户对数据透视表有了初步的印象，然后通过相关例子来介绍SQL与数据透视表在日常工作中的应用，向用户展示双剑结合的威力。
第10章  SQL和VBA
本章大部分示例以Access作为数据库，来展示Excel如何通过VBA来利用SQL语句进行数据查询、修改等批量处理。
第11章  综合应用
本章通过对日常工作中的报表分析案例、SQL综合查询通用系统的分模块设计案例的讲解，将各章中常遇到的技巧进行组合，为读者在日常工作中遇到的实际问题进行分析拆解、逐步实现所需要的效果，让SQL语言真正应用到工作中去。
本书约定
为了熟悉本书对鼠标操作、键盘指令等描述方式，从而更顺畅地阅读本书，您有必要了解以下内容：
 菜单
本书中表示连续多个菜单指令时，使用右箭头“→”进行连接，例如：单击“文件”选项卡→“选项”→“公式”，表示依次单击“文件”选项卡的“选项”按钮，在弹出的“Excel 选项”对话框中单击“公式”选项卡。
 鼠标
本书中表示鼠标操作时，均使用标准的表示方法。其中“指向”表示将鼠标指针移到对象之上，且不单击任何按钮；而“单击”特指利用鼠标左键单击目标；“右键单击”表示利用鼠标的右键单击对象；“双击”表示快速按下鼠标左键两次；“拖放”则表示按下鼠标左键不松开的状态下拖动鼠标，拖到目标区域后再放开鼠标左键。
 键盘
本书中表示按键时使用尖括号“【】”号包含，例如“按【Ctrl+Shift+Enter】组合键”表示同时按下键盘上的Ctrl键、Shift键和Enter键。其他按键的表示方法相同，如果需要特殊操作方法，会在相关内容中详细说明。
 代码
本书的SQL代码全部使用大写，例如：SELECT SUM(销售量) AS 总销售量,SUM(销售额) AS 总销售额FROM [空调销售表$]。在讲解SQL语法时，参数尽量使用小写，例如VAR (expr)。
本书特点
本书为市场上第一本在Excel中完全应用SQL语言的Excel书籍，文体结构新颖，案例贴近实际，讲解深入透彻，表现为以下几个方面：
 场景式提问
本书从成千上万网友提问中精心归纳、提炼出各类问题，并还原为贴近真实的求助语言及案例，方便读者搜寻与实际工作相似问题。
 增强式目录
本书总体章节划分以“基础理论→分类应用→综合实战”为主线，将VBA的主要知识点和经典解决方案设计到每个疑难的案例中，并采用“疑难”加“知识点”的特色目录索引，方便读者根据需要翻阅和查找。
 开创式结构
本书案例中的“解决方案”环节是对问题的思路解说，结合“操作方法”环节中的步骤让人更容易理解。“原理分析”环节则主要解释所使用代码的工作原理。“知识扩展”环节包括与案例相关的知识点补充，可拓展读者的视野，同时也有利于理解案例本身的解决思路。
学习方法
本书旨在让读者掌握运用SQL语句的基本操作、方法和技巧，用以解决实际工作中的疑难问题，以及对同类的问题提供解决思路。
书中各章节按由易到难的方式组织，但章节之间是相互独立的，可以从任意章节开始学习，不需要遵循由前至后的顺序阅读。
本书配套有示例文件光盘，读者必须把光盘的文件放置在D盘，然后边看书边操作，只有通过实践和不断尝试，才能真正地掌握和灵活地运用本书中的SQL语句的知识，也许可以写出比本书作者更好的SQL语句。
致谢与作者
丛书从策划到出版，倾注了电子工业出版社计算机图书分社张慧敏、石倩、安娜等多位编辑近一年的心血，特在此表示衷心地感谢！
为保证丛书的质量，使其更贴近读者，我们组织了ExcelTip Net的多位版主和高级会员参与了本书的预读工作，他们是梁薇薇、王士刚、张瑞芳、翁嘉辰、姚亮亮、任强、张伟、王洋、曾泽明、薛宇锋、程传魏和张敏。感谢各位预读员的辛勤、耐心与细致，使得本丛书能以更加完备的面目与各位读者见面。
感谢兄弟网站Excelpx com与Officefans net对本书的宣传工作给予的支持与帮助。
本书由黄朝阳策划，林盘生、李懿和陈树青编写。第1、第6~9章由林盘生编写，第2、5、10章由李懿编写，第3章由陈树青编写，第4章由陈树青和李懿共同编写，第11章由李懿和林盘生共同编写，最后由林盘生和黄朝阳完成统稿。
尽管作者对书中的案例精益求精，但疏漏仍然在所难免，如果您发现书中的错误或某个案例有更好的解决方案，敬请登录售后服务的网址向作者反馈。我们将尽快在社区回复，且在本书再次印刷时予以修正。
再次感谢您的支持！
编著者  
2011年6月15日
目  录
第1章  SQL基础入门 1
1.1  熟悉Excel的SQL语言编写环境 1
疑难1  如何获取外部源数据 1
※ 通过OLE DB 接口获取外部数据源 2
※ 使用Microsoft Query导入外部源数据 3
疑难2  如何刷新导入的外部数据 7
※ 刷新导入的外部数据源 8
疑难3  在数据源移动后如何修改数据源的连接路径 9
※ 根据弹出提示自动修改移动的文件路径 10
※ 通过修改连接字符串来修改移动的文件路径 11
疑难4  如何将混合类型的字段强制设置为文本字段 11
※ 强制设置导入的外部数据源的字段为文本形式 13
※ SQL中的连接字符串详解 13
疑难5  如何对外部数据进行安全设置 15
※ 安全设置外部数据 15
1.2  SQL基础概念 17
疑难6  如何从表中获取多列和多行 17
※ 使用SQL语句获取行和列数据 17
※ 什么是关系数据库中的表 18
※ 一行在表中表示什么信息 18
※ 一列在表中表示什么信息 19
疑难7  如何通过唯一标识把两个表的数据连接在一起 19
※ 如何理解主键标识 20
1.3  SQL语句入门 21
疑难8  如何查询工作表中单列数据 21
※ 使用SQL获取单列数据 22
※ 什么是SELECT子句 22
疑难9  如何查询工作表中多列数据 23
※ 使用SQL语句获取多列数据 24
※ SQL列字段命名的限制 24
疑难10  如何查询工作表中的所有列数据 25
※ 如何理解SQL语句中的通配符 26
※ 什么叫别名 26
疑难11  如何使用列别名 26
※ 如何使用列别名 27
疑难12  如何使用DISTINCT查询工作表中不重复的记录 28
※ SQL语句中关键词DISTINCT的使用 29
疑难13  如何查询百度豪华车排行榜中某日搜索量大于800的记录 30
※ SQL语句中WHERE子句的使用 31
疑难14  如何在SQL中使用定义名称 31
※ 定义名称在SQL语句中的应用 32
※ 什么叫名称 33
疑难15  如何对学生的成绩进行降序排列 33
※ ORDER BY子句的使用 34
疑难16  如何不借助源数据表使用SQL语句 34
※ 什么情况下的SQL语句可以不使用FROM子句 35
疑难17  如何把一条新记录添加到数据源中 35
※ INSERT INTO语句的使用 37
疑难18  如何在Excel中更新数据 38
※ UPDATE语句的使用 39
疑难19  如何提取带有合并单元格的数据 39
※ 如何对包含合并单元格字段的工作表使用SQL语句 40
疑难20  如何解决查询结果中有空白记录的问题 41
※ 如何去除查询结果中出现的空白记录 41
1.4  练习与思考 42
第2章  SQL运算符使用 43
2.1  比较运算符 43
疑难21  如何查询报考某专业的考生 43
※ 为SQL设置条件查询子句 44
※ 不以第一行为起点的数据表示 44
※ 等号运算符 45
疑难22  如何查询字段值中包含双引号的数据 45
※ 包含引号的数据表示 46
疑难23  如何查询指定日期的出口数据 47
※ 日期型数据表示 48
疑难24  如何查询啤酒销量超过50kL的信息 49
※ 带有括号的字段名表示方式 50
※ 大于、小于等运算 50
疑难25  如何查询某班外同学的考试成绩 51
※ 不等号比较运算 52
2.2  逻辑运算符 52
疑难26  如何查询缺考同学的数据 52
※ NULL值的判断 53
疑难27  如何查询同时参加两项比赛的人员名单 54
※ IN运算的妙用 55
※ NOT IN运算出现NULL值时的注意事项 55
疑难28  如何查询2010年进入公司的员工名单 56
※ 利用BETWEEN求某范围内的数据 57
疑难29  如何查询姓“刘”的所有人员 57
※ 运用LIKE进行模糊匹配 58
※ 模糊匹配中不确定长度的字符表示 58
疑难30  如何查询订单号第三、四位为指定文本的出库记录 59
※ 模糊匹配中长度为1的字符表示 60
疑难31  如何查询成绩为C以上的同学 60
※ 模糊匹配中字符区间的表示 61
疑难32  如何查询商品代号中带有数字的商品数据 62
※ 模糊匹配中数字区间的表示 62
疑难33  如何查询姓名两端没有方括号的所有员工 63
※ 模糊匹配中特殊字符的表示 64
2.3  连接运算符 64
疑难34  如何对多个字段进行模糊查询 64
※ 连接符（&）的妙用 65
疑难35  如何查询同时满足申请租赁型经济适用房条件的人员 66
※ 同时满足多个条件的查询 67
疑难36  如何查询付款超过最后付款期限及尚未付款的客户 68
※ 满足多个条件之一的查询 69
2.4  算术运算符 69
疑难37  如何查询语数外总分大于240分的同学名单和总成绩 69
※ 字段的四则运算 70
※ 日期与数字的关系和转换 71
疑难38  如何计算员工社会保险缴纳金额 72
※ 按照百分比例计算字段 73
※ Excel中数字的精度 73
疑难39  如何根据点坐标计算距原点的距离 74
※ 幂运算的妙用 74
2.5  练习与思考 75
第3章  SQL常见函数使用 76
3.1  字符串函数 76
疑难40  如何根据二代身份证号返回出生年份 76
※ 四舍六入五单双的规则 79
※ MIDB函数的用法 80
※ 字符与字节的关系 80
疑难41  如何返回邮政机构所在行政区域 80
※ RIGHT函数与RIGHTB函数的区别 83
疑难42  如何分离联系电话的区号与电话号码 83
※ LEFT函数与LEFTB函数的区别 85
疑难43  如何替换字符串中的地名 85
※ REPLACE函数的使用 86
疑难44  如何去除字符串首尾两侧的空格 89
※ TRIM与LTRIM、RTRIM 91
※ 空格与不可见字符 91
疑难45  如何返回字符串中某字符所在位置 92
※ INSTR函数的使用 94
疑难46  如何比较两列数据是否相同 95
※ CBOOL函数与STRCOMP函数用法比较 98
疑难47  如何查询有换行符字段的记录 100
※ 处理换行符的方法 101
疑难48  如何去除路径仅返回文件名 101
※ INSTRREV函数的使用 102
疑难49  如何将英文歌曲名称转换为小写字母 104
※ STRCONV函数的使用 105
※ LCASE函数与UCASE函数的使用 109
3.2  算术函数 111
疑难50  如何将价格进位到角得到产品零售价 111
※ ROUND函数的使用 112
※ CINT函数的使用 115
疑难51  如何求出阳台的圆弧长度 115
※ 弧度计算说明 116
疑难52  如何返回直角三角形斜边长度 117
※ 弧度与角度的转换 118
※ SQL中可用的其他三角函数 118
疑难53  如何将编码转换为十六进制数 118
※ HEX函数转换为十六进制的使用 119
※ 二进制、八进制、十六进制介绍 120
※ 进制转换方法简介 120
疑难54  如何根据货物重量返回满载车数量 121
※ INT函数的使用 122
※ FIX函数的使用 122
3.3  转换函数 123
疑难55  如何统一项目起止的日期格式 123
※ CDATE函数的使用 124
※ FORMATDATETIME函数的使用 126
※ FORMAT函数将文本型日期转换为日期值 127
疑难56  如何格式化出货量增长率 128
※ FORMATPERCENT函数的使用 129
※ FORMATNUMBER函数的使用 130
※ 用ROUND函数配合“&”返回百分比 131
※ 用FORMAT函数返回百分比 132
疑难57  如何整理投票结果并返回读书数量 132
※ VAL函数返回数字 133
疑难58  如何将数字转换为字符 133
※ CSTR函数的使用 134
※ CSTR函数与STR函数的区别 135
※ CVAR函数的使用 136
疑难59  如何将字符转换成数字 136
※ CLNG函数的使用 137
※ CDBL函数、CSNG函数及CVAR函数用法比较 138
3.4  其他函数 138
疑难60  如何根据学生成绩返回等第成绩 138
※ SWITCH函数的使用 139
疑难61  如何得到调整后的工资额 141
※ ISNULL函数的使用 142
※ ISNUMERIC函数 143
疑难62  如何得到反转后的回文诗 143
※ STRREVERS函数的使用 144
疑难63  如何按规定格式返回数字与文本混杂的数据 144
※ FORMAT函数返回相应格式使用 145
※ IIF函数的使用 153
※ 纯小数前是否显示前导0 154
疑难64  如何查看支出是否超出预算 154
※ CHOOSE函数的使用 157
疑难65  如何根据二代身份证号码判断性别 158
※ 用MOD函数配合IIF函数取性别 159
※ 用INT+MID+ IIF函数取性别 162
3.5  练习与思考 162
第4章  SQL日期和时间函数使用 163
4.1  获取日期 163
疑难66  如何查询今天是星期几 163
※ DATE函数的使用 164
※ NOW函数的使用 164
※ WEEKDAY函数的使用 165
※ WEEKDAYNAME函数的使用 168
※ DATEPART函数的使用 171
※ 关于星期的典型语句 175
疑难67  如何用SQL语句得到当前月的剩余天数 176
※ DATEADD+DAY函数的使用 176
疑难68  如何用SQL判断今年是平年还是闰年 178
※ DATESERIAL函数的使用 179
※ 判断平年或闰年的语句 180
疑难69  如何用SQL获取今年母亲节的日期 182
※ WEEKDAY+DATESERIAL+FORMAT函数的使用 182
疑难70  如何用SQL计算员工的工龄工资 184
※ DATEDIFF函数的使用 185
疑难71  如何用SQL计算食品到期日期 187
※ DATEADD函数返回到期日期 188
4.2  格式化日期 188
疑难72  如何将日期和时间转换为系统标准格式 188
※ 利用FORMAT函数转换日期 190
疑难73  如何获取合同签订的英文日期 190
※ 利用FORMAT函数转换为英文日期 191
※ 利用函数复合运用转换为英文日期 191
疑难74  如何将日期转换为报表所需格式 192
※ 获取当月总天数的技巧 193
4.3  时间段查询 193
疑难75  如何返回第一季度中的销售记录 193
※ DATEPART函数忽略年份获取日期所在的季度 194
疑难76  如何提取合同即将到期的员工及最迟续订期限 194
※ 利用WEEKDAY函数获取工作日信息 196
疑难77  如何获取所有职员的星座 196
※ 不同年份查询相同月份、日期所在区间 197
※ 笛卡儿积的概念 197
疑难78  如何找出销售额最高的月份 198
※ 利用MONTHNAME函数获取月份的完整表示 199
疑难79  如何查询库存中某日的出入库情况汇总 199
※ 日期和时间的关系 200
4.4  练习与思考 200
第5章  SQL排序查询 201
5.1  单列数据排序 201
疑难80  如何提取某区域的销售记录并按销售额降序排列 201
※ 利用ORDER BY子句对记录进行排序 202
※ SQL查询机制步骤详解 202
疑难81  如何找出考试成绩总分前5名的同学 203
※ 利用TOP谓词查询前几条记录 204
※ TOP PERCENT保留记录规律 204
疑难82  如何查询百米赛跑项目第5～8名的运动员 205
※ 伪时间排序技巧 206
※ 查找排名中间的记录的技巧 206
※ TOP谓词出现重复记录的查询规律 207
疑难83  如何将考生姓名进行随机排序 207
※ 随机排序技巧 208
※ 伪随机数概念 208
5.2  多列数据排序 209
疑难84  如何将员工名单按照多级部门进行排序 209
※ 多列排序技巧及规律 210
疑难85  如何从总分前10名中找出语文成绩最差的3名同学 210
※ 在排序结果中查找指定记录的技巧 211
疑难86  如何得到足球比赛小组赛的出线名单 212
※ 指定不同排序方法的多列排序 213
※ 利用数学计算方法进行多列排序 213
5.3  练习与思考 214
第6章  聚合函数与分组统计 215
6.1  聚合函数的应用 215
疑难87  如何求某公司的总销售量及总销售额 215
※ SUM函数在SQL语句中的使用 216
疑难88  如何求某班学生的各科平均成绩 216
※ AVG函数在SQL中的使用 217
疑难89  如何统计订单号不重复的数目 217
※ DISTINCT+COUNT统计不重复的记录数 218
疑难90  如何获取学生年龄的最大值及最小值 219
※ MAX函数及MIN函数在SQL语句中的使用 220
疑难91  如何剔除最大值及最小值后求均值 220
※ SUM+MAX+MIN+COUNT函数综合使用 221
疑难92  如何获得入网套餐终端补贴起始月份及终止月份 221
※ FIRST函数及LAST函数的使用 222
疑难93  如何估计货运运费的标准偏差及标准差 222
※ STDEV函数及STDEVP函数的使用 223
疑难94  如何求某组学生口语测验成绩的方差 224
※ VAR函数及VARP函数的使用 224
疑难95  如何计算某列中空值的数目 225
※ NULL在SQL语句中的使用 226
疑难96  如何计算不同日期的数量 226
※ COUNT+FORMAT函数的使用 227
6.2  域聚合函数的应用 227
疑难97  如何按商品编码统计累计销售额 227
※ DSUM函数在SQL语句中的使用 229
疑难98  如何求每位学生得分最高两科的所有记录 229
※ DCOUNT函数在SQL语句中的使用 230
疑难99  如何求指定条件的货款额均值 231
※ DAVG函数在SQL语句中的使用 232
疑难100  如何查询指定条件的人员的姓名 233
※ DLOOKUP函数在SQL语句中的使用 234
疑难101  如何求指定条件的营业厅的最高分及最低分 234
※ DMAX函数及DMIN在SQL语句中的使用 235
疑难102  如何求指定条件的第一个值及最后一个值 236
※ DFIRST函数及DLAST在SQL语句中的使用 237
疑难103  如何求指定条件的方差 238
※ DVAR函数及DVARP在SQL语句中的使用 238
疑难104  如何求指定条件的标准偏差标准差 239
※ DSTDEV函数及DSTDEVP在SQL语句中的使用 240
6.3  分组统计 240
疑难105  如何汇总同一物品的数量及价格 241
※ GROUP BY子句的使用 241
疑难106  如何分组汇总多列数据 242
※ 使用多个分组列的GROUP BY子句 243
疑难107  如何查询销售数量大于15台的手机品牌及销售金额 243
※ HAVING子句的使用 244
疑难108  如何查询平均成绩大于60分同学的学号、姓名和平均成绩 245
※ 使用HAVING子句提取平均成绩大于60分的记录 246
疑难109  如何统计姓“林”的员工人数 246
※ HAVING子句结合LEFT函数统计某姓氏的人数 247
疑难110  如何求某车间的机器在每分钟内的平均速度 248
※ 通过GROUP BY子句结合FORMAT函数对时间段进行分组 249
疑难111  如何查询材料编号重复出现2次或2次以上的记录 249
※ GROUP BY子句+HAVING子句+WHERE子句提取重复出现2次及
2次以上的记录 250
疑难112  如何查询只出现1次编码的记录 251
※ GROUP BY子句+HAVING子句提取只出现1次的记录 251
※ WHERE子句=1提取只出现1次的记录 252
疑难113  如何查询“不重复且价格最低”的记录 252
※ GROUP BY子句+MIN函数获取最低单价的记录 253
疑难114  如何计算每个得分范围内的数量 253
※ GROUP BY+IIF函数的使用 254
※ GROUP BY+CHOOSE函数的使用 255
※ GROUP BY+PARTITION函数的使用 256
疑难115  如何将多行的享受月份转化为一行起止的享受月份 256
※ GROUP BY+FIRST函数+LAST函数的使用 257
疑难116  如何实现表格行列转置 257
※ TRANSFORM语句的使用 258
疑难117  如何得到每个人的成绩表 259
※ TRANSFORM的交叉表及GROUP BY子句汇总求和 260
疑难118  如何生成列合计的交叉表 260
※ TRANSFORM+GROUP BY子句+UNION ALL求带有小计及合计行的
结果表 261
6.4  练习与思考 264
第7章  连接查询 265
7.1  内连接查询 265
疑难119  如何查询水果所对应的颜色 265
※ 一对一连接两个工作表 266
疑难120  如何查询每条成绩表记录所对应的学生信息 266
※ 公共字段连接两个工作表 267
疑难121  如何理解连接中的多对多关系 268
※ 笛卡儿积导致数据虚增的原因 269
疑难122  如何进行两个或者两个以上表的连接 270
※ 多个工作表连接 271
※ AND在多个工作表连接中的使用 271
疑难123  如何根据测评分数给学生评定等级 271
※ 使用BETWEEN  AND连接工作表 272
疑难124  如何得到各城市满意度大小比较关系图 273
※ 使用大于条件连接工作表 274
疑难125  如何进行字母之间大小的对比 274
※ 通过字母大小比较连接工作表 275
疑难126  如何处理比赛对阵表 275
※ 使用行函数连接工作表 276
疑难127  如何使用INNER JOIN连接三个表 276
※ 使用INNER JOIN连接工作表 277
7.2  外连接查询 277
疑难128  如何使用左外连接 278
※ 使用LEFT OUTER JOIN进行左连接 279
疑难129  如何使用右外连接 279
※ 使用RIGHT OUTER JOIN进行右连接 280
疑难130  如何使用全外连接 281
※ 使用全外连接 281
疑难131  如何对超过两个或两个以上的表进行左外连接 282
※ 多个工作表进行左连接 283
7.3  连接查询的高级应用 284
疑难132  如何把两个工作表的资料合并在一起 284
※ UNION ALL的使用 285
※ UNION ALL与UNION的区别 285
疑难133  如何把列数不等的两个工作表合并起来 286
※ 列数不等的工作表进行连接 287
疑难134  如何查询指定条件的职工资料 288
※ 剔除指定记录进行内连接 289
疑难135  如何查询各组长管理的组员记录 289
※ 内连接及WHERE子句的使用 290
疑难136  如何获取每一户对应的户主姓名 291
※ 左外连接的高级使用 293
疑难137  如何查询所有学生的学号、姓名、选课数及总成绩 293
※ ISNULL+IIF+左外连接的使用 294
疑难138  如何查询学过“002”和“003”课程的学生的学号、姓名 295
※ 内连接+WHERE子句+GROUP BY子句+HAVING子句的综合应用 296
疑难139  如何生成排列组合 297
※ 什么叫交叉连接 298
疑难140  如何生成0～999的数字 298
※ 交叉连接生成一组数 299
7.4  练习与思考 299
第8章  子查询 300
8.1  简单子查询 300
疑难141  如何查询销售数量大于平均销售量的数据 300
※ 大于平均值的子查询 301
疑难142  如何查询“王双”所在部门的所有员工的销售情况 302
※ 带有IN的子查询 303
疑难143  如何输出每个学生在必修表中未修的课程 304
※ 带有NOT IN的子查询 305
疑难144  如何查询选修了课程名为“大学数学”的学生学号及姓名 306
※ 带有IN的子查询 307
疑难145  如何查询出每家户口所在地不同的记录 309
※ 使用EXISTS谓词进行子查询 310
疑难146  如何查询数学成绩大于80分的学生的相关记录 310
※ 使用NOT EXISTS谓词进行子查询 311
疑难147  如何查询销售数量大于北京分公司所有产品销售数量的品种、
分公司、数量、金额 312
※ 使用ALL进行子查询 313
疑难148  如何查询高于某些店销售数量的信息 314
※ 使用ANY进行子查询 315
疑难149  如何查询两门以上不及格课程的学生姓名、学号及其平均成绩 316
※ 多条件获取符合条件的学号进行子查询 317
疑难150  如何查询大于平均年龄的员工姓名、年龄及学历 318
※ 使用HAVING子句进行子查询 319
8.2  复杂的子查询 319
疑难151  如何返回所在系平均年龄在系平均年龄以上的教师相关信息 319
※ 使用比较表达式进行子查询 320
疑难152  如何求各城市各月销售数量之间的排名 320
※ 使用1+COUNT(*)产生排名的子查询 321
疑难153  如何对考生的成绩进行排名 322
※ 使用多个1+COUNT(*)进行子查询 323
疑难154  如何汇总各个国家获得两块以上的金牌记录 323
※ 使用SUM(1)进行子查询 324
疑难155  如何查询进价相同及进价不同的商品 325
※ 结合FIRST+LAST+IN的子查询 327
疑难156  如何实现在分类汇总行中对某字段进行计数统计 327
※ 带有“总计”的综合子查询 328
疑难157  如何统计各大区域各省份的历年项目数小计并在所在区域内进行排名 329
※ 多层嵌套综合子查询 331
疑难158  如何根据各城市销售数量给其增加自动编号列 331
※ 嵌套子查询及1+COUNT(*)形成排名 333
8.3  练习与思考 333
第9章  SQL与数据透视表 334
9.1  数据透视表基础 334
疑难159  如何汇总各供应商的供货总数及总金额 334
※“数据透视表字段列表”窗格说明 335
疑难160  如何统计各班某科成绩的总体情况 336
※ 数据透视表汇总方式介绍 338
疑难161  如何在数据透视表中使用鼠标拖放 338
※ 启用经典数据透视表布局 339
疑难162  如何设置合并单元格标志 339
※ 设置数据透视表合并单元格标志 340
疑难163  如何添加计算字段来计算销售金额提成 340
※ 数据透视表计算字段介绍 341
疑难164  如何添加计算项获取同比值 342
※ 数据透视表计算项介绍 343
疑难165  如何按年月汇总销售额 343
※ 数据透视表日期字段分组组合 344
疑难166  如何创建年份的单页字段数据透视表 345
※ 创建数据透视表自定义页字段 347
9.2  SQL与数据透视表 347
疑难167  如何创建动态的数据透视表 347
※ 使用SQL语句创建动态的数据透视表 349
疑难168  如何汇总同一个工作簿中的所有数据 349
※ 使用SQL语句连接同一个工作簿内所有的工作表创建动态的数据透视表 351
疑难169  如何汇总同一个工作簿中不同区域的数据 351
※ 使用SQL语句连接同一个工作簿内不同工作表中的不同区域创建数据透视表 353
疑难170  如何汇总不同工作簿中不同工作表的数据 353
※ 使用SQL语句连接不同工作簿中不同工作表的所有数据创建动态的数据透视表 356
疑难171  如何对列数不等的工作表创建数据透视表 357
※ 使用SQL语句连接列数不等的工作表创建动态的数据透视表 359
疑难172  如何分别统计各部门不同性别、学历、职位的人数 359
※ 使用SQL语句对源数据进行结构转换创建动态的数据透视表 361
疑难173  如何创建当月销量及累计销量的数据透视表 362
※ 使用SQL语句创建带有当月统计及累计的动态数据透视表 364
9.3  练习与思考 365
第10章  SQL和VBA 366
10.1  VBA基础 366
疑难174  如何输入和修改VBA代码并保存 366
※ VBA编辑环境及VBA代码的编写和运行 368
※ 启用宏的工作簿在Excel 2003与Excel 2007及以上版本的区别 369
疑难175  如何设置SQL所需的VBA环境 369
※ 引用ADO组件设置SQL编程环境 369
10.2  利用ADO组件进行数据库连接 370
疑难176  如何创建数据库连接实现简单的SQL查询 370
※ 利用ADO连接数据库 371
※ 利用ADO执行SQL查询，并在Excel中输出结果 371
※ ADO连接不同的数据库 371
疑难177  如何使用VBA实现多数据库查询 373
※ 同时查询多个不同的数据库 374
疑难178  如何让用户选择数据库进行查询 374
※ 利用VBA选择数据库路径 376
※ Excel自定义文档属性的概念 377
10.3  利用ADO组件进行表的操作 377
疑难179  如何使用VBA在数据库中新建一个表 377
※ 用CREATE语句新建数据表 378
※ 用SQL语句新建Excel工作表 379
疑难180  如何使用VBA删除数据库中的表 379
※ DROP语句删除表 380
疑难181  如何使用VBA创建新的字段 381
※ 新建数据表中的字段 382
※ 删除数据表中的字段 382
疑难182  如何使用VBA修改表中现有的字段类型 382
※ 修改数据表中的字段名及类型 383
疑难183  如何使用VBA将某个表复制到其他数据库中 383
※ 整个数据表的复制 385
10.4  数据操作 385
疑难184  如何使用VBA向表中添加新的记录 385
※ INSERT INTO语句实现数据的添加 387
疑难185  如何使用VBA将满足条件的记录添加到表中 388
※ INSERT INTO语句实现数据的批量添加 389
疑难186  如何使用VBA修改某个特定记录 390
※ UPDATE语句实现数据的批量修改更新 391
※ UPDATE语句实现跨数据表的更新 392
疑难187  如何使用VBA批量更新记录 392
※ DELETE语句实现数据的批量删除 394
※ 数据表的删除和清空 394
疑难188  如何使用VBA将SQL查询结果用于数据透视表 394
※ 创建数据透视表的数据源 396
疑难189  如何使用VBA获取某几行记录 397
※ 用GetRows方法实现将查询结果转换为数组 398
※ 记录集的指针 398
疑难190  如何使用VBA进行多表汇总 399
※ 多表的汇总查询 401
※ OpenSchema实现数据库中结构的获取 401
疑难191  如何使用VBA进行文件的上传和下载 402
※ 将SQL查询结果存放于记录集对象 405
※ AddNew实现记录的添加 405
※ 附件数据类型的应用 407
10.5  练习与思考 408
第11章  综合应用 409
11.1  销售报表分析 409
疑难192  如何获取2010年各月销售总数量及总金额 409
※ 使用SQL语句对多个工作表进行分组汇总 411
疑难193  如何获取2010年销量前10位客户各月销售数量明细表 411
※ 使用SQL语句结合数据透视表获取销量前10位的客户明细 411
疑难194  如何获取各客户在2010年各个产品分类的销售总量及销售总金额 414
※ 获取各产品销售总量及销售总金额 414
疑难195  如何获取各销售经理所负责客户的销售总量及总金额 416
※ 获取各客户销售总量及销售总金额 416
疑难196  如何获取各个区域的销售总量及销售总金额 417
※ 获取各区域销售总量及销售总金额 417
疑难197  如何汇总各业务员的销售总量及销售总金额 418
※ 获取各业务员的销售总量及销售总金额 419
11.2  利用VBA结合SQL设计微型系统 420
疑难198  如何设计通讯录 421
疑难199  如何设计通用汇总程序 430
疑难200  如何设计工资管理系统 447