sqlserver 查询每个学生所修课程的总学分
时间: 2023-08-11 09:08:30 浏览: 443
可以使用以下SQL语句查询每个学生所修课程的总学分:
```
SELECT 学生姓名, SUM(学分) AS 总学分
FROM 学生表
INNER JOIN 选课表 ON 学生表.学生编号 = 选课表.学生编号
INNER JOIN 课程表 ON 选课表.课程编号 = 课程表.课程编号
GROUP BY 学生姓名;
```
其中,学生表、选课表和课程表是需要根据实际情况替换为对应的表名。学生姓名、学生编号、选课表和课程表中的学分等字段名也需要根据实际情况进行替换。
相关问题
sqlserver 查询每个学生所修课程的总学分,并且成绩大于六十
可以使用以下SQL语句查询每个学生所修课程的总学分,并且成绩大于六十:
```
SELECT 学生姓名, SUM(学分) AS 总学分
FROM 学生表
INNER JOIN 选课表 ON 学生表.学生编号 = 选课表.学生编号
INNER JOIN 课程表 ON 选课表.课程编号 = 课程表.课程编号
INNER JOIN 成绩表 ON 选课表.选课编号 = 成绩表.选课编号
WHERE 成绩表.成绩 > 60
GROUP BY 学生姓名;
```
其中,学生表、选课表、课程表和成绩表是需要根据实际情况替换为对应的表名。学生姓名、学生编号、选课表和课程表中的学分等字段名也需要根据实际情况进行替换。另外,成绩表中的成绩字段名也需要根据实际情况进行替换。
利用SQL Server为SC表创建一个插入后触发器,SC表中每插入一条选课记录,将Student表中该学生所修课程的总学分加上所选课程的学分。
可以使用以下SQL语句创建一个插入后触发器:
```
CREATE TRIGGER trg_SC_Insert
ON SC
AFTER INSERT
AS
BEGIN
UPDATE Student
SET TotalCredit = TotalCredit + i.Credit
FROM Student s
JOIN inserted i ON s.StudentID = i.StudentID
END
```
这个触发器会在SC表中插入新的选课记录后触发。它会将该学生所修课程的总学分加上所选课程的学分,并更新Student表中的TotalCredit字段。使用JOIN子句连接Student表和inserted表,通过StudentID字段关联两个表。