中易网

sql 数据库更新语句的问题 现有一个表 test test下有id 1,2,3,4,5 每个id有对应的value值

答案:2  悬赏:20  
解决时间 2021-01-08 14:04
sql 数据库更新语句的问题 现有一个表 test test下有id 1,2,3,4,5 每个id有对应的value值
最佳答案
sqlserver下
数据如你所给的那个
update test set test_value=t2.test_value from test t1 inner join 
(select test_time,SUM(test_value) test_value from test where test_id between 1 and 4 group by test_time) t2
on t1.test_time=t2.test_time and t1.test_id=5执行结果:


其他数据库请另外说明,写法可能有区别。
追问
我本地的表明是 test2   这个不作影响的,在sql develop 以及 PL/SQL中运行都提示的 命令未正确结束,提示都是从光标所在的from处出的问题

追答那你这个就是oracle呗
用这个试试啦

update test t1 set t1.test_value=(select t2.test_value from 
(select test_time,SUM(test_value) test_value 
from test where test_id between 1 and 4 group by test_time) t2)
where t1.test_time=t2.test_time and t1.test_id=5不同数据库语法不一样,以后提问的时候说明数据库

追问我也明白 t2 这个是给查询出来的和的那个进行表命名的   就不懂为啥会无效的。。。难道是这个t2 只在他的括号里面生效的,在外面大的更新条件中没有定义?
追答不好判断,先把
select test_time,SUM(test_value) test_value 
from test where test_id between 1 and 4 group by test_time这句执行以下,看有问题没有?

追问这个执行下来是没问题的,因为我又再次insert了两次 所以数据变成了三倍的了  
追答改了一下,这个呢?
update test2 t1 set t1.test_value=(select t2.test_value from 
(select test_time,SUM(test_value) test_value 
from test2 where test_id between 1 and 4 group by test_time) t2 where t1.test_time=t2.test_time)
where t1.test_id=5;
全部回答
需求描述不清啊追问
哪里不请了,
就像这个表里面的信息,我需要将testID=5的test_value值改成testID1-4的和

这个求和的图里的sum(test_value) 就是我要替换到原来表test里面的 ID为5的值  通过test_time来匹配的,test_time为1   那么test_value就改成50



我就是一直没改好怎么进行替换。追答select * from #test
update #test set #test.test_value = a.sum_value
from (
select test_time,sum(test_value) sum_value from #test where test_id<>5 group by test_time) a
where #test.test_id = 5 and #test.test_time = a.test_time
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
HTC G14主要会有哪些问题?
请问一下 在锅炉中 烟气再循环功能是怎么回事
小丁将一个数除以6,错算成乘6,接着他想再乘9
弘历软件好不好用,对做股票帮助大吗?
皮刺,茎刺,叶刺分别都是变态的什么叶
我改装的自行车怎么样,这样改装会有什么缺点
傲视天地怎么玩着玩着忽然从头开始了
我的电脑里的驱动器不见了 怎么办???
什么软件上的文字图片多
完整版不负如来不负卿TXT!上下部都要 有番外
简便计算,63X(7÷9)
富成大酒店怎么去啊,有事要去办理
以前lg不都刷机包很多的吗,怎么现在g6不能
为什么跟男朋友亲热会觉得反感
菲律宾5 c硬币在中国价格多少
推荐资讯
笔仙1的演职员
求《梁山伯于祝英台》小提琴协奏曲版的听后感
有谁知道有一首歌名字叫什么劫的
污水处理厂cod主要在生化池哪个构筑物进行去
物价局和消协是一回事么
请问以 勤学 健体 崇德 尚美 为话题写一篇演
东山驾校(安阳林州市)地址好找么,我有些事要
who'syourfriend?
mysql 最多可以多少条数据
初年运道未曾通,几许磋跎命亦穷;兄弟六亲无有
异地恋怎么继续?
从90里连续减去15和32,所得的差是()。
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?