|
-----创建MeterReadingData 的T_HouseRealtimeD 数据表 Update 触发器
if (object_id('tgr_classes_UpdateHouseRealtimeD', 'TR') is not null)
drop trigger tgr_classes_UpdateHouseRealtimeD
go
create triggertgr_classes_UpdateHouseRealtimeD
on
Db_MeterReadingData.dbo.T_HouseRealtimeD
for update
as
begin
set nocount on
--创建旧的仪表数据
declare
@HRD_MeterNum nvarchar(50),
@HDI_StartHeatNum decimal(18,2),
@HDI_EndHeatNum decimal(18,2),
@HDI_RunTimeInterval int,
@HDI_RunTimeIntervalStart int,
@HDI_RunTimeIntervalEnd int,
@HDI_StartTime datetime,
@HDI_EndTime datetime,
@HDI_AvgEntryTemp decimal(18,2),
@HDI_AvgEntryTempStart decimal(18,2),
@HDI_AvgEntryTempEnd decimal(18,2),
@HDI_AvgExportTemp decimal(18,2),
@HDI_AvgExportTempStart decimal(18,2),
@HDI_AvgExportTempEnd decimal(18,2),
@HDI_FluxUsed decimal(18,2),
@HDI_FluxUsedStart decimal(18,2),
@HDI_FluxUsedend decimal(18,2)
--select
--HRD_MeterNum,
--hrd_cumHeat,
--hrd_runtime,
--hrd_collecttime,
--hrd_EntryTemp,
--hrd_ExportTemp,
--hrd_cumFlux
--from
--deleted
--select
--hrd_cumHeat,
--hrd_runtime,
--hrd_EntryTemp,
--hrd_ExportTemp,
--hrd_cumFlux,
--hrd_collecttime
--from
--inserted
insert into Db_MeterReadingData.dbo.T_MeterUseHeatingDetailInformation
(
HRD_ID,
HRD_MeterNum,
HDI_StartHeatNum,
HDI_EndHeatNum,
HDI_RunTimeInterval,
HDI_StartTime,
HDI_EndTime,
HDI_AvgEntryTemp,
HDI_AvgExportTemp,
HDI_FluxUsed,
HDI_isSettlement
)
select
0,
inserted.HRD_MeterNum,
deleted.hrd_cumHeat,
inserted.hrd_cumHeat,
(inserted.hrd_runtime-deleted.hrd_runtime),
deleted.hrd_collecttime,
inserted.hrd_collecttime,
(inserted.hrd_EntryTemp+deleted.hrd_EntryTemp)/case when datediff(hour,deleted.hrd_collecttime,
inserted.hrd_collecttime)>0 then datediff(hour,deleted.hrd_collecttime,
inserted.hrd_collecttime) else 1 end,
(inserted.hrd_ExportTemp+deleted.hrd_ExportTemp)/case when datediff(hour,deleted.hrd_collecttime,
inserted.hrd_collecttime)>0 then datediff(hour,deleted.hrd_collecttime,
inserted.hrd_collecttime) else 1 end,
(inserted.hrd_cumFlux-deleted.hrd_cumFlux),
0
from
deleted inner join inserted
on
deleted.HRD_MeterNum=inserted.HRD_MeterNum
where
datediff(hour,deleted.hrd_collecttime,inserted.hrd_collecttime)1)
begin
declare @StartTime datetime,@EndTime datetime
declare @MeterTableID table
(
--HDI_ID int,
MeterID nvarchar(50),
StartHeatNum decimal(18,2),
EndHeatNum decimal(18,2),
runTime int,
avgEntryTemp decimal(18,2),
avgExportTemp decimal(18,2),
fluxUsed decimal(18,2),
startTime datetime,
endTime datetime
)
---init parameter
--select @StartTime='2014-02-06 19:00:00',@EndTime='2014-02-08 16:00:00'
insert into @MeterTableID
select
inserted.HRD_MeterNum,
deleted.hrd_cumHeat,
inserted.hrd_cumHeat,
(inserted.hrd_runtime-deleted.hrd_runtime),
(inserted.hrd_EntryTemp+deleted.hrd_EntryTemp)/case when datediff(hour,deleted.hrd_collecttime,
inserted.hrd_collecttime)>0 then datediff(hour,deleted.hrd_collecttime,
inserted.hrd_collecttime) else 1 end,
(inserted.hrd_ExportTemp+deleted.hrd_ExportTemp)/case when datediff(hour,deleted.hrd_collecttime,
inserted.hrd_collecttime)>0 then datediff(hour,deleted.hrd_collecttime,
inserted.hrd_collecttime) else 1 end,
(inserted.hrd_cumFlux-deleted.hrd_cumFlux),
deleted.hrd_collecttime,
inserted.hrd_collecttime
from
deleted inner join inserted
on
deleted.HRD_MeterNum=inserted.HRD_MeterNum
where
datediff(hour,deleted.hrd_collecttime,inserted.hrd_collecttime) |
|