一个更新sql的问题, 怎么写?

lbx1979 2006-03-22 10:54:04
一个表如下
职工编号 月份 数据列
a 1 123
b 1 234
a 2 345
b 2 456

我想把一月的数据更新到对应职工的2月份里怎么不行呢
update tab set data=(select sum(data) from tab a a.id=tab.id and month='1')
where month='1'
...全文
138 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lbx1979 2006-03-23
  • 打赏
  • 举报
回复
kao, 误会
原来是我少写了更新表名, 哈哈
lbx1979 2006-03-23
  • 打赏
  • 举报
回复
empid month data1 data2 data3 ...
a 1 123 4 5
b 1 234 6 5
a 2 345 7 4
b 2 456 65 45
现在的问题是这样的,有很多数据列,根据计算公式来更新某一列的数据,
可能是其他列的运算或是和别的类似表的数据列运算
比如我要更新2月份data1列的员工数据更新为1月份data2列的数据+data3列2月份的数据

update tab set data1=(select sum(data2) from tab a a.id=tab.id and month='1')+
(select sum(data3) from tab b b.id=tab.id and month='2')
where month='2'
这样写对吗,我在sql server里怎么不行呢,更新出的数据不对
因为程序要兼顾多个数据库类型的

youyuan1980 2006-03-23
  • 打赏
  • 举报
回复
楼上正解。
mark
bzszp 2006-03-23
  • 打赏
  • 举报
回复
update tab set data=(select sum(data) from tab a a.id=tab.id and month='1')
where month='2'

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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