当前位置: 代码迷 >> Sql Server >> 求好手帮忙写一个触发器,小妹跪求
  详细解决方案

求好手帮忙写一个触发器,小妹跪求

热度:80   发布时间:2016-04-24 10:39:29.0
求高手帮忙写一个触发器,小妹跪求啊
我们单位有60个测站,站号是STCD,每两个小时每个测站会向数据库rwdb表PPTN发送一条数据,PPTN表结构(其中STCD、TM是主键,也就是说不能出现同一时间的重复记录)
STCD(站号)      TM(时间)      DRP(每两小时雨量)    INTV(标志)    PDR       DYP(日雨量) WTH

31128350          2014-05-10 00:00:00          1                         2.00               null                null           null
31128350          2014-05-10 02:00:00           0                        2.00               null                null           null
31128350          2014-05-10 04:00:00          15                       2.00               null                null          null
31128350          2014-05-10 06:00:00           6                      2.00              null                   null           null
    。。。
31128350          2014-05-10  22:00:00           0                        2.00               null                null          null
41820100          2014-05-10 00:00:00          1                         2.00               null                null           null
41820100           2014-05-10 02:00:00           0                        2.00               null                null          null
。。。
我想实现功能:每天早上6点数据库接收到每个站06:00:00的数据后,就自动计算每一个站点的日雨量dyp(也就是昨天6点到今天16点。tm>='2014-05-14 06:00:00' and <'2014-05-15 06:00:00'intv=2的所有drp加起来的值。),计算后把每个站点原来的6点的记录更新成
STCD(站号)      TM(时间)      DRP(每两小时雨量)    INTV(标志)    PDR    DYP(日雨量)    WTH
 31128350         2014-05-10 06:00:00         6                     2.00               null             16               null
触发器怎么写?请帮帮我,想了一早上还是没想出来,昨天因为实验还把数据库里的数据搞没了
------解决方案--------------------
我也是SQL Server 2000,没有你说的问题。建议你到 SQL查询分析器 里面试一下
考虑到一次可能插入60条数据,下面这个可能效率更高一点儿
CREATE TABLE tPPTN(STCD int,
  TM smalldatetime,
  DRP int,
  INTV int,
  DYP int
 )
  
INSERT INTO tPPTN(STCD, TM, DRP, INTV)
SELECT 31128350, '2014-05-11 04:00:00', 1, 2 UNION ALL
SELECT 31128350, '2014-05-11 02:00:00', 2, 2 UNION ALL
SELECT 31128350, '2014-05-11 00:00:00', 3, 2 UNION ALL
  相关解决方案