小弟才疏学浅,不知道能不能用一张表的同一字段的值进行比对,得到的值写入另一个字段。如列子:
这个表只有前面4个字段是外部写入 的数据,【name   one  two  three】,后面字段的数据都是根据前面的数据而改变的
【oneUp,twoUp,threeUp】是【one,two,three】每次的增长数name    one    two   three   oneUp     twoUp     threeUp     dTime 
-----  ----  ------  ------  ------   --------   --------   -------
aa       11     22     33  [defult]0   [defult]0 [defult]0  [getdate()]
bb       22     33     44  [defult]0   [defult]0 [defult]0  [getdate()]
cc       33     44     55  [defult]0   [defult]0 [defult]0  [getdate()]
我每5分钟得到3条数据,写入数据库。那么下次取得的数据就要和上面三行数据进行对比
aa       13     23     54      2          1          21     [getdate()]
bb       54     56     88     32         23          44     [getdate()]
cc       85     85     65     52         41          10     [getdate()]
----请问,用什么方法能做到上面的那个效果呢?
数据的差异就是写入时间不同 ,我知道得到不同时间段的数据
select * from [table] where datediff(minute,pTime,getdate()) between 5 and 10 order by convert(int,three) desc
这个是得到离现在 5 -- 10分钟的数据。后面就不知道该怎么写啊。。 高手请帮帮忙啊。 谢谢了。我就想每次插入数据的时候那几个字段就自动能算出值

解决方案 »

  1.   

    create trigger trigger_name
    on table_name
    instead of insert
    as
    set nocount on
    insert
    table_name
    select
    a.主键
    a.name,
    a.one,
    a.two,
    a.three,
    a.one-isnull(b.one,0),
    a.two-isnull(b.two,0),
    a.three-isnull(b.three,0),
    getdate()
    from
    inserted a
    left join
    table_name b
    on a.name=b.name and b.主键=(select max(主键) from table_name where name=b.name)
    set nocount off
    go