数据库更新数据
SQL SERVER数据库题目:把成绩低于该门课程的平均成绩的学生的成绩改为跟该门课程平均分一样;
表有C表(CNO,CN)
S表(SNO,SN,SEX,AGE,DEPT)
SC表(SNO,CNO,SCORE)
数据库小白 请问各位大佬这个咋写的 帮顶,只学过sun公司的两款产品,微软的这个没机会学 倒戈卸甲 发表于 2020-4-15 16:33
帮顶,只学过sun公司的两款产品,微软的这个没机会学
学校学这个 本来说安装MySQL的 不过应该用法都差不多 wuliangtdi 发表于 2020-4-15 17:29
学校学这个 本来说安装MySQL的 不过应该用法都差不多
可以说,各种数据库sql语法应该是大同小异,但也不能完全一致:
你这个问题我在mysql上试验通过(我不会你说这个sqlserver)
set @c=(select AVG(other) from wordb);
update wordb set other=@c where other<@c;
我这里的other字段就是一些double类型数据 wp231957 发表于 2020-4-15 21:04
可以说,各种数据库sql语法应该是大同小异,但也不能完全一致:
你这个问题我在mysql上试验通过(我 ...
万一有很多门的课程这样的话应该是不行的吧 各位i大佬,能否提供一些思路 不需要啥代码 思路对的就可以啊 CREATE TABLE SC_AVG_SCORE
(
CNO VARCHAR(255) PRIMARY KEY(CNO),
AVG_SCORE FLOAT
)
INSERT INTO SC_AVG_SCORE(CNO,AVG_SCORE)
SELECT CNO,AVG(SCORE)
FROM SC
GROUP BY CNO;
SELECT * FROM SC;
UPDATE SC SET SC.SCORE = SC_AVG_SCORE.AVG_SCORE FROM SC,SC_AVG_SCORE
WHERE SC_AVG_SCORE.CNO = SC.CNO AND SC.SCORE < SC_AVG_SCORE.AVG_SCORE;
SELECT * FROM SC;
或者
SELECT * FROM SC;
UPDATE SC SET SC.SCORE = SC_AVG_SCORE1.AVG_SCORE
FROM SC,( SELECT CNO,AVG(SCORE) AS AVG_SCORE
FROM SC
GROUP BY CNO
) AS SC_AVG_SCORE1
WHERE SC_AVG_SCORE1.CNO = SC.CNO AND SC.SCORE < SC_AVG_SCORE1.AVG_SCORE;
SELECT * FROM SC;
给update加个where条件
update 表 set 列.成绩=平均成绩分数 where 学生成绩<平均成绩 update sc set score = 平均成绩分数 where score<平均分数 update操作的时候谨慎操作,都是教训{:10_247:} 但是这个只能针对单表{:10_256:} 一世长安呢 发表于 2020-4-25 14:19
给update加个where条件
update 表 set 列.成绩=平均成绩分数 where 学生成绩
我加了啊 你看后面SC_AVG_SCORE1.CNO = SC.CNO AND SC.SCORE < SC_AVG_SCORE1.AVG_SCORE wuliangtdi 发表于 2020-4-25 15:00
我加了啊 你看后面SC_AVG_SCORE1.CNO = SC.CNO AND SC.SCORE < SC_AVG_SCORE1.AVG_SCORE
{:10_266:}超出我的知识范围了
页:
[1]