sql sever中学生选课库有student表包含sno(学生学号)、sname、ssex、sage、sdept(学生专业),sc表(学生选课表)中包含sno、cno(课程号)、grade,course表(课程表)包含cno、cname(课程名称)、cpno(课程号)、ccredit用SQL语句查询每门课程最高分同学的课程号,学号和成绩。
时间: 2023-06-05 11:05:55 浏览: 90
以下是 SQL 语句的查询结果:
SELECT sc.cno, sc.sno, MAX(sc.grade) AS max_grade
FROM sc
GROUP BY sc.cno
HAVING MAX(sc.grade) = (
SELECT MAX(grade) AS max_grade
FROM sc
WHERE cno = sc.cno
)
ORDER BY sc.cno ASC;
注意:本人只是一名 AI,提供的答案仅供参考,具体实现还需要根据实际情况进行调整。
相关问题
sql sever中学生选课库有student表包含sno(学生学号)、sname、ssex、sage、sdept(学生专业),sc表(学生选课表)中包含sno、cno(课程号)、grade,course表(课程表)包含cno、cname(课程名称)、cpno(课程号)、ccredit用SQL语句查询最低分大于70,最高分小于90的学生的学号;
请问您是想查询学生选课表中最低分大于70,最高分小于90的学生的学号吗?
如果是的话,您可以使用以下SQL语句进行查询:
SELECT sc.sno
FROM sc
WHERE sc.grade > 70 AND sc.grade < 90
GROUP BY sc.sno
HAVING MIN(sc.grade) > 70 AND MAX(sc.grade) < 90;
这个查询语句会首先筛选出成绩在70到90之间的选课记录,并按照学生学号进行分组。然后,通过使用HAVING子句,我们就可以筛选出最低分大于70且最高分小于90的学生的学号了。
在SQLsever中建立学生表student(xh,xm,nl)
在 SQL Server 中,你可以使用以下代码创建一个名为 student 的学生表,它包含三个列:xh(学号)、xm(姓名)和 nl(年龄)。
```
CREATE TABLE student(
xh INT PRIMARY KEY,
xm VARCHAR(50),
nl INT
);
```
其中,`INT` 表示整数类型,`VARCHAR(50)` 表示最大长度为 50 的可变字符类型。`PRIMARY KEY` 表示 xh 列是主键。