SQL:如何根据表里某个字段相同的值,去累加另一个字段

如下图,bxbh是主键,djbh会有重复,按bxbh升序排列,更新sl_1,分别是sl的累加SUM值,比如图中KA7000814_A一行,更新成sl_1:1,-1,0,4,,5,4....

update 表名 t1  set SL_1 = (select sum(SL) from 表名  t2  where t1.DJBH =t2.DJBH and 
t2.MXBH <= t1.MXBH )

试试

追问

sql update 后表名不能用别名啊

追答

update 表名 set SL_1 = (select sum(SL) from 表名 t2 where 表名.DJBH =t2.DJBH and
t2.MXBH <= 表名.MXBH )

温馨提示:内容为网友见解,仅供参考
无其他回答

SQL:如何根据表里某个字段相同的值,去累加另一个字段
update 表名 t1 set SL_1 = (select sum(SL) from 表名 t2 where t1.DJBH =t2.DJBH and t2.MXBH <= t1.MXBH )试试

SQL同一个表的某字段值相加赋值给另一个字段
方法1:我的是insert into 但不是别的表!Insert Into A2 Select t.TABLRELA,t.D019,Sum(t.D019)Over(Partition By t.TABLRELA) From A2 t ;Commit;Delete A2 t Where Rowid Not In (Select Max(Rowid) From A2 y Where t.TABLRELA=y.TABLRELA And t.D019=y.D019);Commit;方法2:u...

ORACLE数据库用PLSQL如何批量更新表里的某个字段的内容为文字加上另外...
可以用以下SQL试试,如果有一对多的情况在b.name=a.name后面加个 and rownum=1:upddate table_a a set a.lname =(select '前缀字符串'||b.lname from table_b b where b.id=a.id and b.name=a.name)

用sql语句实现在同一张表中找到1个字段相同,另1个字段不同的记录
oracle数据库中后者可以用wmsys.wm_concat实现,具体sql如下:select 字段1, wmsys.wm_concat(字段2) from 表group by 字段1 追问 #1305 - FUNCTION wmsys.wm_concat does not exist 出现这个错误 追答 厄,目测你这是SQL SERVER如果有其它列做标识,可以用在子查询中使用union来连接如果没有标识,只好用存储过程...

怎么用一条语句把同一个表里的同一个字段的一条记录的值赋给另一条记...
所以,答案可以这样写:把TABLENAME表的第9条记录的FIELDNAME1字段赋值给第十条记录的字段FIELDNAME1:UPDATE TABLENAME SET FIELDNAME1=(SELECT FIELDNAME1 FROM TABLENAME WHERE RECNO()=9) WHERE RECNO()=10 如果是SQL SERVER,则表必须要有主键,比如主键为ID:UPDATE TABLENAME SET FIELDNAME1=(...

sql怎么查询一个表里一个列相同一个列不同并把它关联到 另一个表?
case CHAR_BASICSKILL.bBasicSkillID when 1 then sum(CHAR_BASICSKILL.dwSkillValue) \/ 1000 else 0 end as 铁匠,case CHAR_BASICSKILL.bBasicSkillID when 2 then sum(CHAR_BASICSKILL.dwSkillValue) \/ 1000 else 0 end as 木匠,case CHAR_BASICSKILL.bBasicSkillID when 3 then sum(CHAR_...

SQL语句怎么从一个表读取一个字段,写入到另一个表的相同字段中!
set 字段名='某值' where 条件表达式 好像不能一起更新,在select的查询中,如果返回多于一行就不能更新!提示:---Msg 512, Level 16, State 1, Line 1 子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。语句已终止。--- ...

oracle去一个字段的一部分值并更新给另一个字段的存储过程
update user set 第一个字段=substr(第三个字段,8,8);commit;非要存储过程的话:create procedure p_update_userbeginupdate user set 第一个字段=substr(第三个字段,8,8) where length(第一个字段)<>15;commit;end;其中where条件的地方,看你到底想用什么规则去取第三个字段的值了。

...里的某一个字段里数据填充在另一个表里的某一字段里代码
insert into table_a (filed1,filed2...) select f1,f2,... from table_b

mysql按某个字段的多个相同的值匹配多个对应字段值
v2,,,vn才能被查出 IN关键字可以判断某个字段的值是否在指定的集合中。如果字段的值在集合中,则满足查询条件,该纪录将被查询出来。如果不在集合中,则不满足查询条件。其语法规则如下:[ NOT ] IN ( 元素1, 元素2, …, 元素n ) 例如: select * from STUDENT where STU_AGE in(11,12);

相似回答