我现在一张表里有这样的数据:
dATE          W_Amount        M_Remain
2003-09           0          0
2003-10           1          2
2003-11  4          5
2003-12            5          8
2004-01  8          22
我需要求每一个月的记录与上一一个月的记录的差作为一条记录;就是这样我先取得这样得数据:
dATE          W_Amount        M_Remain
2003-10           1              2
2003-11           3              3
2003-12           1              3
2004-01 3      14
各位高手,我能实现吗,如何实现?

解决方案 »

  1.   


      可以,还有什么不能实现的!  dim i as integer,j as integer
      dim OldData() as string
      dim NewData() as string
      dim dATE() As string
      dim table as new adodb.connection
      dim dbstr as string
      dim dbrecord as recordset  dbstr="DSN=数据库别名"     '用ODBC连接数据库方式
      table.open dbstr
      Set dbrecord=table.execute("Select * from 上面的表名 order by dATE")
      dbrecord.movefirst
      
      j=-1
      i=0
      while noe dbrecord.eof
        redim OldData(j)
        redim NewData(j)
        redim dATE(j)
        OldData(j)=dbrecord("W_Amount").value
        dATE(j)=dbrecord("dATE").value
        i=i+1
        dbrecord.movenext    
      wend
      for j=1 to i-1
        NewData(j)=CStr(Cint(OldData(j)-Cint(OldData(j-1)))
      next
      
      for j=1 to i-1
        Set dbrecord=table.execute("Update 上面的数据表名 set W_Amount="&"'" _
                &NewData(j)&"'"&"where dATE="&"'"&dATE(j)&"'")
      next
      table.close
      注:这只是更新了列W_Amount,如果要更新列M_Remain的话,只需再增加两个数组,处理过程一样的,在此就略了.
      

  2.   

    select t2.dATE,
           (t2.W_Amount-t1.W_Amount) as W_Amount,
           (t2.M_Remain-t1.M_Remain) as M_Remain
    into newtable
    from table1 as t1,table1 as t2
    where t1.dATE=dateadd(d,-1,t2.dATE)