注册 登录
编程论坛 SQL Server论坛

求助啊!一共4道题 我们要考试了我不会啊!!

孙启 发布于 2016-06-23 15:59, 2955 次点击
11.在本机文件柜中有备份文件“ksdb”,请把它还原到本机中。操作成功后,可以看到该数据库有三个表:“student”表,表示学生基本信息表;“course”表,表示课程基本信息表,其中“Ccredit”表示课程学分;“sc”表,表示学生选课成绩表。
用T-SQL解答下列问题:
①将上述三个表合并,建立一个反映学生整体情况的视图。
②计算统计每个学生所学课程的总学分,但如果学生某门课程成绩不及格,不计入总学分。
③设计一个触发器,当学生修满14个学分,不能再让学生选修课程。
④和李勇同在一系学习的学生成绩增加5分,但超过100时,成绩为100分。
1 回复
#2
mywisdom882016-06-23 17:22
只能给你点提示
①将上述三个表合并,a.*,b.*,c.* 会出现3个学号的,实际应用是有问题的.
select a.*,b.*,c.* from student a
left join course b on a.学号=b.学号
left join Ccredit c on a.学号=c.学号

②没数据,不好统计,可以用学号来分组统计  group by 学号

③当学生修满14个学分,就是说,更新总学分时,触发
create trigger [dbo].[tr_Ccredit]
on [dbo].[Ccredit]
after update
as
begin
-----这里就是你要干的活了,比如你Ccredit 还有个字段,叫"毕业"
update Ccredit set 毕业='是' where 总分>=14
end
④用到 (case when ... then ... else ... end)
update 成绩表 set 成绩=(case when 成绩+5>=100 then 100 else 成绩+5 end) where 系='李勇的系'

李勇的系怎么查出来?
select 系 from student where 学生='李勇'
SQL2000支持下面这样的语句
update 表 set 字段=XXX from 另外表 where 表.字段=另外表.字段



1