例:数据库A中有一个表名为B,B表中有三个列有数据,列名分别为E,F,G。数据类型都为数值型。
现有两个编程思路如下:
首先对列E进行编程,要求该列中的下一个数据减去上面一个数据,把所减的结果放到新增列E1中。
    如:E列中的第二行数据减去第一行数据,所得的结果放到新增列E1的第二行中。然后,E列中   的第三行数据减去第二个数据,所得的结果放到新增列E1的第三行中。就这样,循环下去,一直计算到最后一行记录结束。
第二个编程思路如下:
要求F列的数据对应的减去G列的数据,所得结果放到新增列H中。
    如:F列中第一行数值减去G列中第一行数值,所得的结果放到新增列H中的第一行中。然后,F列中第二行数值减去G列中第二行数值,所得的结果放到新增列H中的第二行中。就这样,循环下去,一直计算到最后一行记录结束。编程可能有点难,请编程高手编写一下,谢先!

解决方案 »

  1.   

    第二个编程思路
    select *,h=f-g from b
      

  2.   

    --增加个标识列ID 用完之后再删除
    alter table A.dbo.B add id int identity(1,1)
    alter table A.dbo.B add E1 int
    alter table A.dbo.B add H intupdate A.dbo.B  set E1=E-(select E from A.dbo.B where id=a.id-1) from A.dbo.B a  where id>1
    update A.dbo.B set H=F-Galter table A.dbo.B drop id select * from 
    alter table A.dbo.B add id int identity(1,1)
    alter table A.dbo.B add E1 int
    alter table A.dbo.B add H intupdate A.dbo.B  set E1=E-(select E from A.dbo.B where id=a.id-1) 
    from A.dbo.B a  where id>1update A.dbo.B set H=F-Galter table A.dbo.B drop id   --删除自增列select * from A.dbo.B
      

  3.   

    怎么发这个鬼东东出来啊!!!  不解--增加个标识列ID 用完之后再删除
    alter table A.dbo.B add id int identity(1,1)
    alter table A.dbo.B add E1 int
    alter table A.dbo.B add H intupdate A.dbo.B  set E1=E-(select E from A.dbo.B where id=a.id-1) from A.dbo.B a  where id>1update A.dbo.B set H=F-Galter table A.dbo.B drop id   --删除自增列select * from A.dbo.B
      

  4.   

    有一点小问题,下面这个语句不能用id作列名,否则编译出错!换其它的可以!
    alter table A.dbo.B add id int identity(1,1)
    还有在删除自增列时,就是这个语句alter table A.dbo.B drop id,在执行时,竟然等了三分多钟,这个可能有点问题!
    请高手解答一下,谢谢!