--更新同一name对应的记录组中,id值最大的那条记录 update t set day1 =(select max(day1) from tabname where name=t.name), day2 =(select max(day2) from tabname where name=t.name), ... day31=(select max(day31) from tabname where name=t.name) from tabname t where not exists(select 1 from tabname where name=t.name and id>t.id)--删除同一name对应的记录组中,id值最大那条记录之外的所有记录 delete t from tabname t where exists(select 1 from tabname where name=t.name and id>t.id)
update '表名' t set day1=sum(select max(day1) from '表名' where name=t.name), . . day31=sum(select max(day31) from '表名' where name=t.name) where not exists (select * from '表名' where t.name=name and t.id<id)
--search select max(id) , name , max(day1) , max(day2) ... , max(day31) from tb group by name--update update tb set day1 = (select max(day1) from tb where name = t.name), day2 = (select max(day2) from tb where name = t.name), ... day31 = (select max(day31) from tb where name = t.name) from tb t--update , delete update tb set day1 = (select max(day1) from tb where name = t.name), day2 = (select max(day2) from tb where name = t.name), ... day31 = (select max(day31) from tb where name = t.name) from tb t delete tb from tb t where id not in (select max(id) from tb where name = t.name)
--更新同一name对应的记录组中,id值最大的那条记录
update t
set
day1 =(select max(day1) from tabname where name=t.name),
day2 =(select max(day2) from tabname where name=t.name),
...
day31=(select max(day31) from tabname where name=t.name)
from
tabname t
where
not exists(select 1 from tabname where name=t.name and id>t.id)--删除同一name对应的记录组中,id值最大那条记录之外的所有记录
delete t from tabname t where exists(select 1 from tabname where name=t.name and id>t.id)
day1=sum(select max(day1) from '表名' where name=t.name),
.
.
day31=sum(select max(day31) from '表名' where name=t.name)
where not exists (select * from '表名' where t.name=name and t.id<id)
select max(id) , name , max(day1) , max(day2) ... , max(day31) from tb group by name--update
update tb
set day1 = (select max(day1) from tb where name = t.name),
day2 = (select max(day2) from tb where name = t.name),
...
day31 = (select max(day31) from tb where name = t.name)
from tb t--update , delete
update tb
set day1 = (select max(day1) from tb where name = t.name),
day2 = (select max(day2) from tb where name = t.name),
...
day31 = (select max(day31) from tb where name = t.name)
from tb t
delete tb from tb t where id not in (select max(id) from tb where name = t.name)