恭喜,你发布的帖子
发布于 2022-04-01 08:29:16
1楼
再创建一个表格demo2:
FAC1和FAC2为累计流量,FDIF1合肥FDIF2为流量差值
创建触发器:
CREATE TRIGGER [dbo].[Trigger2] ON [dbo].[demo2]
INSTEAD OF INSERT /*必须为INSTEAD OF触发器*/
AS
Declare @dt datetime /*时间*/
Declare @f1 real /*进水累计流量当前值*/
Declare @f2 real /*出水累计流量当前值*/
Declare @f21 real /*上次进水累计流量*/
Declare @f22 real /*上次出水累计流量*/
Declare @f3 real /*进水累计流量增加值*/
Declare @f4 real /*出水累计流量增加值*/
BEGIN
/*得到当前插入字段内容*/
SELECT @dt=dt,@f1=FAC1,@f2=FAC2 FROM inserted
/*置上次值为0*/
SET @f21=0
SET @f22=0
/*通过查询最后条记录,得到上次值*/
SELECT TOP 1 @f21=FAC1 ,@f22=FAC2 FROM demo2 WHERE dt<@dt ORDER BY dt DESC
/*计算增加值*/
SET @f3=@f1-@f21
SET @f4=@f2-@f22
/*把当前记录记录及增加值插入表中*/
INSERT demo2(dt,FAC1,FDIF1,FAC2,FDIF2) VALUES(@dt,@f1,@f3,@f2,@f4)
END
插入数据:
insert Demo2(dt,FAC1,FAC2) VALUES ('2022-3-31 12:00:00',8000.0,7200.0)
查询结果:
请填写推广理由:
分享
只看
楼主