SQL查询出的结果为查询条件,最后进行计算批量改数据

先找出有日语科目的名字,然后再根据名字把日语对应的成绩加到外语对应的成绩里,sql查询更改的语句应该怎么写?求大神帮助例如,李四的日语成绩为60,外语成绩为147,修改后... 先找出有日语科目的名字,然后再根据名字把日语对应的成绩加到外语对应的成绩里,sql查询更改的语句应该怎么写?求大神帮助
例如,李四的日语成绩为60,外语成绩为147,修改后,李四没有日语成绩,外语成绩为60+147=207
展开
 我来答
badkano
2013-06-13 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885366
团长

向TA提问 私信TA
展开全部
update 表名  set 成绩=a.成绩+b.成绩 from
(select 姓名,成绩 from 表名 where 科目= '日语') b
inner join 表名 a on a.姓名=b.姓名
where a.科目='外语'

sqlserver的话用上边那句,其他数据库可能写法有变化,其他数据库的话再说

追问
你好,我想修改的是access数据库
追答
update 表名 as a  inner join  
(select 姓名,成绩 as 成绩1 from 表名 where 科目= '日语') as b 
on a.姓名=b.姓名   
set 成绩=a.成绩+b.成绩1
where a.科目='外语'

表的名字替换一下

景琪家园
2013-06-13
知道答主
回答量:38
采纳率:0%
帮助的人:18.9万
展开全部
子查询:
找出日语科目名字:select t.a,t.c from table t where t.b='日语'
然后再根据名字把日语对应的成绩加到外语对应的成绩里:
select tt.c from table tt where (tt.a,tt.c) in and tt.b='外语' (select t.a,t.c from table t where t.b='日语')
日语成绩的人 加上外语成绩的人如下:
select a,c from
(select tt.a,tt.c from table tt where tt.a in
(select t.a from table t where t.b='日语') and tt.b='外语'
union all
select t.a,t.c from table t where t.b='日语'))
以上 答案仅供参考。还有就是你提出的问题是不是有些不符合需求还是没有描述清楚,因为日语的成绩有多条记录,是日语成绩对应的平均值、最大值、最小值等,还是日语成绩对应的姓名的外语成绩,还是日语成绩的人 加上外语成绩的人或是其他。
追问
你好,我想修改的是access数据库
追答
都可以使用。SQL的语法都一样,只要是关系型数据库,都遵行SQL 92、99等SQL标准;
还有什么疑问?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式