请教VFP9.0中的SQL问题

zlz66668888 2014-12-14 01:57:45

检索全部学生都选修的课程的课程号和课程名。


有三个表,因为不能上传附件:
所以把表的结构,以及从表中导出的文本抄录如下。

Create table Cou(课程号 C(4) , 课程名 C(20), 教师 C(10)) && Cou (课程表)
0001德育 赵老师
0002语文 吴老师
0003数学 钱老师
0004英语 刘老师
0005操作系统 丁老师
0006办公软件 刘老师

Create table Stu (学号 C(8), 姓名 C(10), 性别 C(2), 年龄 N(3)) &&Stu 学生档案表
20040001王小阳 男 26
20040002张华 女 25
20040003周思源 男 28
20040004欧阳明月 女 27
20040005李明 男 26
20040006张华 男 26
20040007周自强 男 25
20040008赵军 女 27
20040009张永兴 男 26
20040010张开 男 28

Create table SC (学号 c(20), 课程号 c(4), 成绩 N(5,1)) && SC 学生成绩表
20040001 0001 95.5
20040001 0002 85.0
20040001 0003 75.0
20040003 0001 97.0
20040003 0002 95.0
20040003 0003 93.0
20040003 0004 99.0
20040003 0005 99.0
20040003 0006100.0
20040005 0001 95.5
20040005 0002 96.0
20040005 0003 92.5
20040005 0004100.0
20040005 0005 97.5
20040005 0006 98.0
20040007 0001 75.5
20040007 0002 65.0
20040007 0003 52.5
20040007 0004 53.0
20040007 0005 70.5
20040007 0006 64.0
20040002 0001 93.0
20040002 0002 92.5
20040002 0003 90.5
20040002 0005 89.0
20040002 0006 96.5
20040004 0001 91.5
20040004 0002 85.0
20040004 0003 87.0
20040004 0004 96.5
20040004 0005 92.5
20040004 0006 93.0
20040006 0001 72.0
20040006 0002 72.0
20040006 0003 76.0
20040006 0004 70.5
20040006 0005 75.5
20040006 0006 82.0
20040008 0001 80.5
20040008 0002 86.0
20040008 0003 94.0
20040008 0004 90.5
20040008 0005 85.0
20040008 0006 79.0
20040009 0001 68.5
20040009 0002 96.5
20040009 0003 83.0
20040009 0004 65.0
20040009 0005 63.5
20040009 0006 70.0
20040010 0001 79.0
20040010 0002 89.0
20040010 0003 84.0
20040010 0004 90.0
20040010 0005 84.0
20040010 0006 89.0
20040010 0007 0.0

有人给出如下的SQL算式来实现题目要求:
SELECT 课程号 FROM SC ;
GROUP BY 课程号;
HAVING COUNT(*)=;
(SELECT COUNT(*) FROM Stu )
但提示出错。
当然,如果把 HAVING COUNT(*)=;
(SELECT COUNT(*) FROM Stu )
转化成 HAVING COUNT(*)=10 会达到目的。

问题是,Stu表的记录并不是固定的,所以必须用读取的方式:
SELECT COUNT(*) FROM Stu
才是科学的。

应该怎么做呢?
请不吝赐教!

...全文
447 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lygcw9602 2014-12-15
  • 打赏
  • 举报
回复
一帖多回.........................................
zlz66668888 2014-12-15
  • 打赏
  • 举报
回复
在发这帖时,还没有答案呢。 怎么这里和那里是相通的啊。
lygcw9602 2014-12-14
  • 打赏
  • 举报
回复
Select C.* From (Select * From (Select 课程号,Count(*) 门数 From Sc Group By 1) A Where 门数=(Select Count(*) 人数 From Stu)) B Inner Join Cou C On B.课程号=C.课程号 一帖多发

2,726

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧