
数据库如何实现这样的查询功能
比如: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)这一句有误,回来再斟酌下
)
我想查询每样课程的学习人数,该课程的名字,该课程最高成绩的学生姓名
这应当如何查询? 展开
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)这一句有误,回来再斟酌下
)
我想查询每样课程的学习人数,该课程的名字,该课程最高成绩的学生姓名
这应当如何查询? 展开
2个回答
展开全部
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 行受影响)
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 行受影响)

2025-03-12 广告
以下是虚拟筛选的简要流程图说明:1. **调研靶点**:确认是否有参考药物与结合模式信息。2. **建立模型**:基于靶点蛋白结构,参考已有药物结合信息或预测药物结合模式。3. **选择库源**:从多样性化合物库、上市药物分子库等中挑选合适...
点击进入详情页
本回答由MCE 中国提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询