如题:请用命令行创建存储过程,计算每个同学的平均成绩,写入S_AVG表,平均成绩大于85的学生,Flag标记为“优秀学生”,平均成绩低于60的的学生,Flag标记为“延迟毕业”,其他学生Flag标记为“常规学生”。
能查到的有关例子太少了,自学不成功,求大神解答……
IF EXISTS(SELECT name FROM sysobjects WHERE name = 'StuGrade' AND type = 'P')
DROP PEOCEDURE StuGrade
CREATE PROCEDURE StuGrade(
@Sno NVARCHAR(MAX)
)
AS
DECLARE @Degree DECIMAL(10,2)
SET @Degree = (SELECT AVG(Degree) FROM S_AVG WHERE Sno = @Sno GROUP BY Sno)
IF
BEGIN
@Degree > 85
UPDATE S_AVG SET Flag = '优秀学生'
END
ELSE IF
BEGIN
@Degree < 60
UPDATE S_AVG SET Flag = '延迟毕业'
END
ELSE
BEGIN
UPDATE S_AVG SET Flag = '常规学生'
END
#不能肯定一定对,只是我的一个思路
分步做
1.计算每个同学的平均成绩,写入S_AVG表
insert into S_AVG(id,score) select id,avg(成绩) from table group by id
2.优秀学生
update S_AVG set Flag='优秀学生' where score>85
3.延迟毕业
4.常规学生