update tab set data=(select sum(data) from tab a a.id=tab.id and month='1')
where month='2'

解决方案 »

  1.   

    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里怎么不行呢,更新出的数据不对
    因为程序要兼顾多个数据库类型的
      

  2.   

    kao, 误会
    原来是我少写了更新表名, 哈哈