SQL批量修改

来源:百度知道 编辑:UC知道 时间:2024/05/15 23:55:20
我有一个表...ZONE
其中列A有相同数据,但是列C中数据不同.
要求
如果列A中有相同的数据.将列C中对应几项数字想加得到总结果.并将相同的数据删除.保留相加后的数据!
请哪位大虾指点....
效果
A C
中国 1
美国 2
中国 2
美国 3
效果
A C
中国 3
美国 5
下面那个可以是可以..能看的到.但是数据并没有更改..有没有更好的办法.能直接就在数据表上修改呢!

select a,sum(c) from zone group by a
这样就OK了.
楼下那样做法肯定是不行的,你更新是把所有C列的值都更新成同国名的和,与楼主思想不一致.
楼主你的思想得用手工来操作.
一.按上面语句执行一遍,然后保存为不带表头的文本
二.delete from zone
三.把文本导回zone.
这样就更新回去了.
更好的办法就是写个小程序,然后执行这些操作

理解写的,没测试, 你试试看。。。。。好像全更新了没有删除。。。。
UPDATE zone
SET c =
(SELECT SUM(z1.c)
FROM zone z1
WHERE z1.a = zone.a
GROUP BY z1.a)