首先声明,我自己做的也是经过思考的,思维方法是这样,但输入vfp6.0就是缺少必需子句!
我要强调一点,并不是说自己要有标准答案才能出来考别人,没有答案就是为了交作业,发出来只是想了解正确做法,和自己的思想对比,学到更多的东西,我可以把自己想的发出来,大家的提议我也能接受,感谢!
1、sele cnt(成绩表.课程号) from 学生管理数据库!成绩表 wher 成绩表.学号=(sele top 1 成绩表.学号 from 学生管理数据库!成绩表 order by 成绩表.成绩 desc)
2、sele * from 学生管理数据库!成绩表 wher 成绩表.学号=(sele top 1 成绩表.学号 from 学生管理数据库!成绩表 order by 成绩表.成绩)
3、sele * from 学生管理数据库!学生表 join 学生管理数据库!成绩表 on 学生表.学号=成绩表.学号;
wher 成绩表.成绩<(sele avg(成绩表.成绩) from 学生管理数据库!成绩表 grou by 成绩表.课程号);
and 成绩表.课程号=(sele 成绩表.课程号 from 学生管理数据库!成绩表 grou by 成绩表.课程号)
附:(这是在别的论坛上热心人解答的,虽然输入过是错的,但是也很感激他,他教会了用别名的方法)
(1): SELECT a.学号,a.姓名,b.课程号,b.成绩,c.课程名 FROM 学生表 a INNER JOIN 成绩表 b ON a.学号=b.学号 INNER JOIN 学分表 c ON b.课程号=c.课程号 WHERE STR(b.成绩,4,1)+b.课程号 in (SELECT STR(MAX(成绩),4,1)+课程号 FROM 成绩表 GROUP BY 课程号) ORDER BY 5 INTO CURSOR tmp1
(2). SELECT a.学号,a.姓名,b.课程号,b.成绩,c.课程名 FROM 学生表 a INNER JOIN 成绩表 b ON a.学号=b.学号 INNER JOIN 学分表 c ON b.课程号=c.课程号 WHERE STR(b.成绩,4,1)+b.课程号 in (SELECT STR(MIN(成绩),4,1)+课程号 FROM 成绩表 GROUP BY 课程号) ORDER BY 5 INTO CURSOR tmp2
(3) SELECT aa.* FROM (SELECT a.学号,a.姓名,b.课程号,b.成绩,c.课程名 FROM 学生表 a INNER JOIN 成绩表 b ON a.学号=b.学号 INNER JOIN 学分表 c ON b.课程号=c.课程号 ) aa INNER JOIN (SELECT avg(成绩) as 成绩,课程号 FROM 成绩表 GROUP BY 课程号) bb ON aa.课程号=bb.课程号 WHERE aa.成绩<bb.成绩 INTO CURSOR tmp3
虽然这种方法求出来的不是我所要的结果,但是最后一条命令却显示是错的,我也没搞明白是哪错,也请各位能够指点,我可以接受批评,但不喜欢乱爱胡说一通,没经过调查就发表与帖子不相关言论的人!