我们单位有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