USE [AirDB_YiZhuang]
GO
/****** Object: Trigger [dbo].[Trigger_Insert_PollDAY] Script Date: 2017/12/26 8:33:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: pyy
-- Create date: 2017-2-15
-- Description: hour数据求平均得到日数据
---- mondify Description: 2017-4-5站点“宾士国际”的数据只更新到了3-28
-- =============================================
CREATE TRIGGER [dbo].[Trigger_Insert_PollDAY]
ON [dbo].[T_Data_PollHour]
AFTER INSERT--,DELETE,UPDATE
AS
BEGIN
declare @t1 datetime
declare @t2 datetime
declare @Hourt datetime
--站点1的最新时间
set @t1=(select max(MONIDATE) from [AirDB_YiZhuang].[dbo].[T_Data_PollHour] where STATIONCODE= '500000001')
--站点2的最新时间
set @t2=(select max(MONIDATE) from [AirDB_YiZhuang].[dbo].[T_Data_PollHour] where STATIONCODE= '500000002')
--最新时间里的最小值
set @Hourt=@t1
--(select case when @t1<@t2 then @t1 else @t2 end)
insert into [AirDB_YiZhuang].[dbo].[T_Data_PollDay]
(STATIONCODE,MONIDATE,NOx,NH3,TNX,H2S)
select STATIONCODE,cast(MONIDATE as datetime) MONIDATE,NOx,NH3,TNX,H2S
from
(select STATIONCODE,
substring(convert(varchar,MONIDATE,120),0,11) MONIDATE,
AVG(NOx) NOx,AVG(NH3) NH3,
AVG(TNX) TNX,AVG(H2S) H2S
from
[AirDB_YiZhuang].[dbo].[T_Data_PollHour]
where MONIDATE >=(select DATEADD(DAY,1,max(MONIDATE)) from [AirDB_YiZhuang].[dbo].[T_Data_PollDay])
--T_MID_AIRQUALITYDAY最新的时间
and
--MONIDATE <(select substring(convert(varchar,max(monidate),120),0,12)+'00:00:00' from T_MID_AIRQUALITYMin)
--T_MID_AIRQUALITYHOUR最新的时间的日期值
--当两个站点的小时数据不同步的时候,数据慢的那个站点的日平均数据就可能不对(不足24条小时数据)
MONIDATE <(substring(convert(varchar,@Hourt,120),0,12)+'00:00:00')
group by STATIONCODE,substring(convert(varchar,MONIDATE,120),0,11)) as a
END
GO
GO
/****** Object: Trigger [dbo].[Trigger_Insert_PollDAY] Script Date: 2017/12/26 8:33:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: pyy
-- Create date: 2017-2-15
-- Description: hour数据求平均得到日数据
---- mondify Description: 2017-4-5站点“宾士国际”的数据只更新到了3-28
-- =============================================
CREATE TRIGGER [dbo].[Trigger_Insert_PollDAY]
ON [dbo].[T_Data_PollHour]
AFTER INSERT--,DELETE,UPDATE
AS
BEGIN
declare @t1 datetime
declare @t2 datetime
declare @Hourt datetime
--站点1的最新时间
set @t1=(select max(MONIDATE) from [AirDB_YiZhuang].[dbo].[T_Data_PollHour] where STATIONCODE= '500000001')
--站点2的最新时间
set @t2=(select max(MONIDATE) from [AirDB_YiZhuang].[dbo].[T_Data_PollHour] where STATIONCODE= '500000002')
--最新时间里的最小值
set @Hourt=@t1
--(select case when @t1<@t2 then @t1 else @t2 end)
insert into [AirDB_YiZhuang].[dbo].[T_Data_PollDay]
(STATIONCODE,MONIDATE,NOx,NH3,TNX,H2S)
select STATIONCODE,cast(MONIDATE as datetime) MONIDATE,NOx,NH3,TNX,H2S
from
(select STATIONCODE,
substring(convert(varchar,MONIDATE,120),0,11) MONIDATE,
AVG(NOx) NOx,AVG(NH3) NH3,
AVG(TNX) TNX,AVG(H2S) H2S
from
[AirDB_YiZhuang].[dbo].[T_Data_PollHour]
where MONIDATE >=(select DATEADD(DAY,1,max(MONIDATE)) from [AirDB_YiZhuang].[dbo].[T_Data_PollDay])
--T_MID_AIRQUALITYDAY最新的时间
and
--MONIDATE <(select substring(convert(varchar,max(monidate),120),0,12)+'00:00:00' from T_MID_AIRQUALITYMin)
--T_MID_AIRQUALITYHOUR最新的时间的日期值
--当两个站点的小时数据不同步的时候,数据慢的那个站点的日平均数据就可能不对(不足24条小时数据)
MONIDATE <(substring(convert(varchar,@Hourt,120),0,12)+'00:00:00')
group by STATIONCODE,substring(convert(varchar,MONIDATE,120),0,11)) as a
END
GO