2022年SQL查询语言基本教程 3.pdf
《2022年SQL查询语言基本教程 3.pdf》由会员分享,可在线阅读,更多相关《2022年SQL查询语言基本教程 3.pdf(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、SQL查询语言基本教程(2)三、 GROUP BY.语句 GROUP BY. 语句实现纪录分组功能,它通常需要和上面我们提到过的统计函数 SUM 、COUNT 等联合使用,它的语法为: SELECT column1, column2 FROM table1,table2 WHERE conditions GROUP BY column1, column2 ORDER BY column1, column2 范例四:计算学生成绩及总成绩我们依然使用上一章使用的数据库 c:db4.mdb,在其中加入一个名字为 db2 的表, 表的结构以及数据如下:字段名学生科目成绩张严语文 86.5 李永语文 9
2、3 王为语文 91 张严数学 96.5 李永数学 90 王为数学 87 张严英语 80.5 李永英语 94 王为英语 98 建立新工程,加入DAO定义库。在Form1 中加入一个ListBox控件,然后在Form_load中加入以下代码:Private Sub Form_Load() Dim rsTemp As Recordset 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - Dim dbTemp As Database Di
3、m astr As String Set dbTemp = DBEngine(0).OpenDatabase(c:db4.mdb, dbOpenSnapshot) astr = SELECT SUM(db2.成绩 )AS rTotal, FORMAT(AVG(db2. 成绩 ), #.# ) AS rAVG, & _ (db2.学生 ) AS Student FROM db2 GROUP BY db2.学生 Set rsTemp = dbTemp.OpenRecordset(astr) If rsTemp.RecordCount 0 Then rsTemp.MoveFirst Do Until
4、 rsTemp.EOF List1.AddItem rsTemp!Student & Chr(5) & rsTemp!rTotal & _ & rsTemp!rAVG rsTemp.MoveNext Loop End If End Sub 在上面的代码中,我们利用GROUP BY 将纪录根据学生姓名分组,再建立了两个统计字段 rTotal和 rAvg 并分别利用统计函数SUM 和 AVG分别统计各个分组的总成绩以及平均成绩。要注意的是,在SELECT 语句中出现的字段,如果没有包含在统计函数内的话,都要包含在GROUP BY 子句中。另外在上面的SQL查询中我们还使用了FORMAT 子句,这是
5、SQL中的转换和格式化语句中的一个,该语句的语法同VB中的 Format 语句是一样的, 相似的语句还有FIX 语句。需要注意的一点是,虽然在 Microsoft JET Engine 中的 SQL语法和ANSI决大部分是一样的,但是有一些还是保留了“微软特色”,特别是象这一类的转换和格式化语句,例如FORMAT 就是ANSI中没有的。而象其它数据库,诸如oracle也有各自的SQL语法扩展。在使用不同数据名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - -
6、 - - - - - - 库进行 SQL查询时要注意这一点。在 GROUP BY 语句中还可以连接使用HAVING子句。该语句同GROUP BY 的关系就如同WHERE 子句同 SELECT 的关系类似,WHERE 子语句为SELECT 所选择的列设置条件,而HAVING子语句是给由GROUP BY 创建的组设置条件。例如如果将上面的范例中的 astr 改变为如下的字符串:astr = SELECT SUM(db2.成绩 )AS rTotal, FORMAT(AVG(db2.成绩 ), #.# ) & _ AS rAVG, (db2.学生 ) AS Student FROM db2 GROUP
7、 BY db2.学生 & _ HAVING (AVG(db2.成绩 )=90 则在 List中就将只会列出平均成绩大于90 分的学生的成绩和名字。范例五:获得分数高于总平均分数的学生及科目我们仍然使用上面建立的db2 表。建立新工程, 加入 DAO 定义库。 在 Form1中加入一个ListBox控件和一个Label 控件然后在 Form_load 中加入以下代码:Private Sub Form_Load() Dim rsTemp As Recordset Dim dbTemp As Database Dim astr As String Set dbTemp = DBEngine(0).O
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年SQL查询语言基本教程 2022 SQL 查询 语言 基本 教程
限制150内