缺失set关键字

createtableAstudent(sidint,snamevarchar(10),cidint);createtablesclass(sidint,snumint)... create table Astudent (
sid int,
sname varchar(10),
cid int
);

create table sclass (
sid int,
snum int
);
snum是班级人数

这是表结构

将班级人数统计出来,更新到sclass表中的snum字段
update sclass s,(select cid,count(*) snum from Astudent group by cid order by cid desc) cc set s.snum=cc.snum where s.sid=cc.cid;
这句话总是提示缺失set关键字
怎么回事啊 求高手
展开
 我来答
badkano
推荐于2017-11-26 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885374
团长

向TA提问 私信TA
展开全部
update sclass  set snum=cc.snum from sclass s inner join (select cid,count(*) snum from Astudent group by cid) cc on s.sid=cc.cid;

sqlserver写写法

注意一点,这种写法会把关联不上的那些置空,运行前请备份sclass表数据

追问
这是Oracle下写的,但是采用的就是标准SQL啊 分析下来是没问题的 但是一运行就是缺失Set关键字
追答

oracle下的这么写

update sclass s set s.snum=(select cc.snum(select cid,count(*) snum from Astudent group by cid) cc where s.sid=cc.cid);

有些东西sqlserver和oracle还是略有区别的

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式