图9 select '北京'as城市,*from[北京$]union all select '上海'as城市,*from[上海$]union all select '天津'as城市,*from[天津$] 7、单击“确定”按钮,返回到“导入数据”对话框。 根据需要,可以选择“表”单选按钮或者“数据透视表”单选按钮,并指定数据的保存位置,最后单击“确定”按钮,印可得到需要的汇总表。 图10所示是选择“表”单选按钮后得到的汇总数据清单。
图10 图11所示是选择“数据透视表”单选按钮后得到的数据透视表。
图11 关于SQL语句的小知识: 本节介绍了利用SQL语句对多个具有多列文本工作表数据进行查询汇总的基本方法,下面简要介绍SQL语句的基本知识。 在众多的SQL语句中,SELECT语句是使用最频繁的。SELECT语句主要用来对数据库进行查询并返回符合用户查询标准的结果数据。 SELECT语句有5个主要的子句,而FROM是唯一必需的子句。每一个子句有大量的选择项和参数。 SELECT语句的语法格式如下: SELECT字段列表 FROM子句 [WHERE子句] [GROUP BY子句] [HAVING子句] [ORDER BY子句] SELECT语句的各项组成说明如下: (1)字段列表 字段列表指定多个字段名称。各个字段之间用半角逗号“。”分隔。用星号“*”表示所有的字段。当包含有多个表的字段时。可用“数据表名。字段名”表示,即在字段名前标明该字段所在的数据表。 例如。“select日期,产品编号,销售量,销售额”就是选择数据表中的“日期”、“产品编号”、“销售量”和“销售额”这4个字段。还可以在字段列表中自定义宇段。例如SQL语句“select日期,产品编号,销售量,销售额。“北京'as城市from[北京$]”中,除了查询工作表“北京”中的宇段“日期”、“产品编号”、“销售量”和“销售额外”。还自定义了一个工作表中没有的字段“城市”。并将“北京”作为该宇段的数据。由于“北京”是一个文本。因此需要用单引号括起来。将某个数据保存在自定义字段的方法是利用AS属性词。即“'北京'as城市”。 (2)FROM子句 FROM子句是一个必需子句,指定要查询的数据表,各个数据表之间用半角逗号“。”分隔。 但要注意。如果是查询工作簿中的数据表,就必须用方括号将工作表名括起来,并且工作表名后要有美元符号($)。 例如。“select日期,产品编号,销售量,销售额from[北京$]".就是查询工作表“北京”中的字段“日期”、“产品编号”、“销售量”和“销售额”。 如果要查询的是Access数据库、SQL Server数据库等关系型数据库的数据表,在FROM后面直接写上数据表名即可。 (3)WHERE子句 WHERE子句是一个可选子句,指定查询的条件。可以使用SQL运算符组成各种条件运算表达式。 例如“WHERE部门=“销售部”就表示要查询的部门是“销售部”的数据。 如果条件值是数值,则直接写上数值,如“WHERE年龄>50";如果条件值是字符串。则必须用单引号“'”括起来。如“WHERE部门='销售部'”;如果条件值是日期,则必须用井号“#”或单引号“'”括起来。如“WHERE日期:=#2007-12-22#”。 (4)GROUP BY子句 GROUP BY子句是一个可选子句,指定分组项目,使具有同样内容的记录(如日期相同、部门相同、性别相同等)归类在一起。 例如,“GROUP BY性别”就表示将查询的数据按性别分组。 (5)HAVING子句 HAVING子句是—个可选子句,功能与WHERE子句类似,只是必须与GROUP BY子句一起使用。 例如,要想只显示平均工资大于5000元的记录并按部门进行分组,则可以使用子句“GROUPBY部门HAVING AVG(工资总额)>5000"。 (6)ORDERBY子句 ORDER BY子句是一个可选子句,指定查询结果以何种方式排序。排序方式有两种:升序(ASC)和降序(DESC)。如果省略ASC和DESC.则表示按升序排序。 例如。“ORDER BY姓名ASC"就表示查询结果按姓氏拼音升序排序;而“ORDER BY工资总额。年龄DESC”则表示查询结果按“工资总额”从小到大升序排序,“年龄”按从大到小降序排序。 此外,在实际工作中可能要查询工作簿中的多个工作表或者数据库中的多个数据表。这就是多表查询问题。 多表查询有很多种方法。例如。利用WHERE子句设置多表之间的连接条件。利用JOIN…ON子句连接多个表。利用UNION或者UNION ALL连接多个SELECT语句等。 Excel中使用SQL语句汇总表格时,如果我们要查询多个工作表或数据表的数据,并将这些表的数据生成一个记录集。那么可以利用UNION ALL将每个表的SELECT语句连接起来。 |