求一个更新的SQL语句 请大师指教!

lsj3073 2012-02-28 11:02:28
数据如下:
STAT_MONTH HOMEAREA COUNTYNAME GWAP GJAVA LYJ PHONEZF WOLX
201111 格尔木 茫崖 4600 4000 2400 0 0
201111 海西州 茫崖 15800 0 6200 2000 0



需求如下
如果是海西州的 茫崖放到格尔木的 茫崖 ,当然海西州的芒崖下的这些费用 GWAP GJAVA LYJ PHONEZF WOLX
应该更新到格尔木下面去。

意思是这个地区有交叉 需要给整合一下, 最终要把海西州 茫崖 剔除掉。不知我描述的是否够清楚 请指教
...全文
221 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsj3073 2012-02-28
  • 打赏
  • 举报
回复
STAT_MONTH HOMEAREA COUNTYNAME GWAP GJAVA LYJ PHONEZF WOLX
201111 格尔木 茫崖 4600 4000 2400 0 0
201111 海西州 茫崖 15800 0 6200 2000 0

zhangcong615 2012-02-28
  • 打赏
  • 举报
回复
----------------------1。将 海西州 茫崖 后面的数据加到 格尔木 茫崖 列
update 数据表 set(GWAP, GJAVA, LYJ ,PHONEZF ,WOLX)= (
select a.Gwap+b.Gwap ,a.GJAVA+b.GJAVA ,a.LYJ+b.LYJ,a.PHONEZF+b.PHONEZF ,a.WOLX+b.WOLX from (
select stat_month ,GWAP, GJAVA, LYJ,PHONEZF ,WOLX from 数据表 where homearea='格尔木' and countyname='茫崖'
) a join
(
select stat_month ,GWAP, GJAVA, LYJ ,PHONEZF ,WOLX from 数据表 where homearea='海西州' and countyname='茫崖'
) b on a.stat_month=b.stat_month )
where HOMEAREA='格尔木' and COUNTYNAME='茫崖';
---------------2.删除行 海西州 茫崖
delete from 数据表 where homearea='海西州' and countyname='茫崖';
commit;
lsj3073 2012-02-28
  • 打赏
  • 举报
回复
跟我想的一样,我是这样做的 但想知道有其他别的方法不


Update SP_HQBL_RISHOU_2G
Set Gwap = (Select sum(Gwap) From SP_HQBL_RISHOU_2G where Stat_Month = v_n_stat_cycle
And Countyname = '茫崖'),
Gjava = (Select sum(Gjava) From SP_HQBL_RISHOU_2G where Stat_Month = v_n_stat_cycle
And Countyname = '茫崖'),
Lyj = (Select sum(Lyj) From SP_HQBL_RISHOU_2G where Stat_Month = v_n_stat_cycle
And Countyname = '茫崖'),
Phonezf = (Select sum(Phonezf) From SP_HQBL_RISHOU_2G where Stat_Month = v_n_stat_cycle
And Countyname = '茫崖'),
Wolx =(Select sum(Wolx) From SP_HQBL_RISHOU_2G where Stat_Month = v_n_stat_cycle
And Countyname = '茫崖'),
Sms = (Select sum(Sms) From SP_HQBL_RISHOU_2G where Stat_Month = v_n_stat_cycle
And Countyname = '茫崖'),
Duanxin = (Select sum(Duanxin) From SP_HQBL_RISHOU_2G where Stat_Month = v_n_stat_cycle
And Countyname = '茫崖'),
Mms = (Select sum(Mms) From SP_HQBL_RISHOU_2G where Stat_Month = v_n_stat_cycle
And Countyname = '茫崖'),
Xl = (Select sum(Xl) From SP_HQBL_RISHOU_2G where Stat_Month = v_n_stat_cycle
And Countyname = '茫崖')
Where Stat_Month = v_n_stat_cycle
And Countyname = '茫崖';
commit;

----删除海西州芒崖

Delete From SP_HQBL_RISHOU_2G where homearea='海西州' And countyname='茫崖' And stat_month=v_n_stat_cycle;
Commit;
xpingping 2012-02-28
  • 打赏
  • 举报
回复
update tb set GWAP= GWAP+(select GWAP from tb where HOMEAREA ='海西州' and COUNTYNAME='茫崖' ),
GJAVA= GJAVA+(select GJAVA from tb where HOMEAREA ='海西州' and COUNTYNAME='茫崖' ),
LYJ =LYJ +(select LYJ from tb where HOMEAREA ='海西州' and COUNTYNAME='茫崖' ),
PHONEZF =PHONEZF +(select PHONEZF from tb where HOMEAREA ='海西州' and COUNTYNAME='茫崖' ),
WOLX =WOLX +(select WOLX from tb where HOMEAREA ='海西州' and COUNTYNAME='茫崖' )
where HOMEAREA ='格尔木' and COUNTYNAME='茫崖'
然后
delete from tb where HOMEAREA ='海西州' and COUNTYNAME='茫崖'
lsj3073 2012-02-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 benluobobo 的回复:]
为什么是 把海西州的芒崖数值 加到格尔木的芒崖上
而不是反过来
[/Quote]


因为需要把海西州的芒崖数值 加到格尔木的芒崖上 加之 海西州下面不应该有芒崖。

lsj3073 2012-02-28
  • 打赏
  • 举报
回复
因为需要把海西州的芒崖数值 加到格尔木的芒崖上 加之 海西州下面不应该有芒崖。
benluobo 2012-02-28
  • 打赏
  • 举报
回复
为什么是 把海西州的芒崖数值 加到格尔木的芒崖上
而不是反过来
lsj3073 2012-02-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bin3509 的回复:]
楼主是想把 海西州 茫崖 去掉。然后把 海西州 茫崖的数值加到格尔木 茫崖 上面去吗
[/Quote]

是的 就是这样。


不是只单纯的把HOMEAREA 的海西州 改成格尔木 那样很好弄。


因为海西州的芒崖和格尔木的芒崖交叉了 所以需要去掉海西州 把海西州的芒崖数值 加到格尔木的芒崖上

forgetsam 2012-02-28
  • 打赏
  • 举报
回复
数据量多少 业务规则是什么,为什么把海西州去掉而不是格尔木。
benluobo 2012-02-28
  • 打赏
  • 举报
回复
只要 COUNTYNAME 相同就合并么?
ICE-word 2012-02-28
  • 打赏
  • 举报
回复
如果只是单纯的把HOMEAREA 的海西州 改成格尔木

UPDATE tablename t SET t.homearea='格尔木' WHERE t.homearea='海西州' AND t.countyname='茫崖' 这样就可以了
ICE-word 2012-02-28
  • 打赏
  • 举报
回复
楼主是想把 海西州 茫崖 去掉。然后把 海西州 茫崖的数值加到格尔木 茫崖 上面去吗

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧