数据库如何实现这样的查询功能

比如:createtableT_Student(Fsonchar(10)primarykey,--学号Fsnamenvarchar(10)notnull,--姓名Fsse... 比如:
create table T_Student(
Fson char(10) primary key,--学号
Fsname nvarchar(10) not null,--姓名
Fssex nchar(1) check(Fssex in('男','女')),--性别
Fsage int check(Fsage between 15 and 45),--年龄
Fsdept nvarchar(20) default '计算机系'--所在系
)
create table T_Course(
Fcno char(10) primary key,--课程号
Fcname nvarchar(20) not null,--课程名
Fccredit int check(Fccredit>0),--学分
Fsemster int check(Fsemster>0),--学期
Fperiod int check(Fperiod>0)--学时
)
create table T_Sc(
Fsno char(10) foreign key(Fsno) references T_student(Fson),--学号
Fcno char(10) foreign key(Fcno) references T_Course(Fcno),--课程号
Fgrade int check(Fgrade between 0 and 100),--成绩
--primary key(Fsno,Fcno)这一句有误,回来再斟酌下
)
我想查询每样课程的学习人数,该课程的名字,该课程最高成绩的学生姓名
这应当如何查询?
展开
 我来答
wangzhiqing999
2011-10-03 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3567万
展开全部
INSERT INTO T_Student
SELECT '01', '张三', '男', 20, '计算机系' UNION ALL
SELECT '02', '李四', '女', 19, '计算机系' UNION ALL
SELECT '03', '王五', '男', 18, '计算机系' UNION ALL
SELECT '04', '赵六', '女', 17, '计算机系'

INSERT INTO T_Course
SELECT 'DB', '数据库', 5, 1, 40 UNION ALL
SELECT 'C', 'C语言', 5, 1, 40 UNION ALL
SELECT 'OS', '操作系统', 5, 1, 40 UNION ALL
SELECT 'CO', '编译原理', 5, 1, 40

INSERT INTO T_Sc
SELECT '01', 'DB', 60 UNION ALL
SELECT '02', 'DB', 70 UNION ALL
SELECT '03', 'DB', 80 UNION ALL
SELECT '04', 'DB', 90 UNION ALL
SELECT '01', 'C', 60 UNION ALL
SELECT '02', 'C', 70 UNION ALL
SELECT '03', 'C', 80 UNION ALL
SELECT '01', 'OS', 60 UNION ALL
SELECT '02', 'OS', 70 UNION ALL
SELECT '01', 'CO', 60
GO

SELECT
T_Course.Fcno,
T_Course.Fcname,
COUNT( DISTINCT T_Student.Fson ) AS 学习人数,
(SELECT Fsname FROM T_Student ts JOIN T_Sc tsc ON (ts.Fson = tsc.Fsno)
WHERE tsc.Fcno = T_Course.Fcno AND tsc.Fgrade = MAX(T_Sc.Fgrade) ) AS 最高成绩的学生姓名
FROM
T_Sc
JOIN T_Student
ON (T_Sc.Fsno = T_Student.Fson)
JOIN T_Course
ON (T_Sc.Fcno = T_Course.Fcno)
GROUP BY
T_Course.Fcno,
T_Course.Fcname;

Fcno Fcname 学习人数 最高成绩的学生姓名
---------- -------------------- ----------- ----------
C C语言 3 王五
CO 编译原理 1 张三
DB 数据库 4 赵六
OS 操作系统 2 李四

(4 行受影响)
MCE 中国
2025-03-12 广告
以下是虚拟筛选的简要流程图说明:1. **调研靶点**:确认是否有参考药物与结合模式信息。2. **建立模型**:基于靶点蛋白结构,参考已有药物结合信息或预测药物结合模式。3. **选择库源**:从多样性化合物库、上市药物分子库等中挑选合适... 点击进入详情页
本回答由MCE 中国提供
推理弟
2011-10-02
知道答主
回答量:12
采纳率:0%
帮助的人:4.8万
展开全部
用group on分组查询,自己查下用法吧。
追问
能给下源码么?
懒了,嘿嘿^_^
给个链接也行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式