【SQL练习】 计算并填写学生获得的总学分 本题目要求编写UPDATE语句, 计算每位学生已获得的总学分并填写在stu表中的totalcredit字段。...

您所在的位置:网站首页 sql语句计算 【SQL练习】 计算并填写学生获得的总学分 本题目要求编写UPDATE语句, 计算每位学生已获得的总学分并填写在stu表中的totalcredit字段。...

【SQL练习】 计算并填写学生获得的总学分 本题目要求编写UPDATE语句, 计算每位学生已获得的总学分并填写在stu表中的totalcredit字段。...

2023-10-13 17:23| 来源: 网络整理| 查看: 265

数据库上机练习 问题描述:

本题目要求编写UPDATE语句, 计算每位学生已获得的总学分并填写在stu表中的totalcredit字段。

其中,总学分为每个学生通过的选修课程的学分数总和,注意:只有在60分以上的选课成绩才能获得该门课程的学分数,每门课程的学分数在cou表中credit字段。

表结构: 请在这里写定义表结构的SQL语句。例如:

CREATE TABLE `stu` ( `sno` char(4) NOT NULL, `sname` char(8) NOT NULL, `sex` tinyint(1) DEFAULT NULL, `mno` char(2) DEFAULT NULL, `birdate` datetime DEFAULT NULL, `memo` text, `totalcredit` smallint(6) DEFAULT NULL, PRIMARY KEY (`sno`) ); CREATE TABLE `cou` ( `cno` char(4) NOT NULL, `cname` varchar(30) NOT NULL, `credit` smallint(6) DEFAULT NULL, `ptime` char(5) DEFAULT NULL, `teacher` char(10) DEFAULT NULL, PRIMARY KEY (`cno`) ); CREATE TABLE `sc` ( `sno` char(4) NOT NULL, `cno` char(4) NOT NULL, `grade` decimal(6,1) DEFAULT NULL, `rank` char(255) DEFAULT NULL, PRIMARY KEY (`sno`,`cno`), CONSTRAINT `fk_sc_cno` FOREIGN KEY (`cno`) REFERENCES `cou` (`cno`), CONSTRAINT `fk_sc_sno` FOREIGN KEY (`sno`) REFERENCES `stu` (`sno`) );

表样例 请在这里给出上述表结构对应的表样例。例如

在这里插入图片描述 cou表: 在这里插入图片描述 sc表: 在这里插入图片描述 原因分析:

这个问题解决的关键在于怎么按码,改变相应元组的其他属性,正确的方法是用两张表

update A,B set A.x=B.x where A.主码=B.主码

那么现在的问题是如何建立一个含有sum(credit)和sno的新表 代码如下

select sno,sum(credit) from( select stu.sno sno,case when sc.grade>=60 then credit else NULL end credit from stu left outer join sc on stu.sno=sc.sno left outer join cou on sc.cno=cou.cno group by stu.sno,credit,grade) a group by sno

接下来的操作就是两张表的结合了,即可得到正确答案:

正确解答 UPDATE stu,(select sno,sum(credit) SUM from( select stu.sno sno,case when sc.grade>=60 then credit else NULL end credit from stu left outer join sc on stu.sno=sc.sno left outer join cou on sc.cno=cou.cno group by stu.sno,credit,grade) a group by sno) B SET stu.totalcredit = B.SUM where stu.sno = B.sno

点个关注吧,求求了,我会努力更新的。(上次的数理统计复习我会陆续上传的)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3