	--将2012年的数据更新为最新标准
	declare @year int
	set @year=2012;
	--废气监测项目排放标准
	with CTE_FQ as
	(
		select 标准代码,监测项目编号,条件编码,排放单位,排放上限,排放下限,排放上限运算符,排放下限运算符
		from 系统_污染物标准排放明细 where 监测类型 in ('3','6')
	)
	--更新废气数据中的排放标准值
	update 业务_废气监测数据
	set 
	执行标准代码=b.执行标准代码,
	执行标准条件代码=b.执行标准条件代码,
	排放单位=c.排放单位,
	排放上限=c.排放上限,
	排放下限=c.排放下限,
	排放上限运算符=c.排放上限运算符,
	排放下限运算符=c.排放下限运算符,
	浓度是否达标=dbo.GetIsOverStarndard(a.污染物浓度,c.排放下限,c.排放上限,a.监测项目编号),
	超标倍数=dbo.GetOverStarndardNum(a.污染物浓度,c.排放下限,c.排放上限,a.监测项目编号)
	from 
	业务_废气监测数据 as a inner join 业务_企业监测项目时间段 as b 
	on a.监测年=b.监测年 and a.企业代码=b.企业代码 and a.企业类型=b.企业类型 and a.监测点代码=b.监测点代码 and a.监测点名称=b.监测点名称 and a.监测项目编号=b.监测项目编号
	and cast(cast(a.监测年 as varchar(4))+'-'+cast(a.监测月 as varchar(2))+'-'+cast(a.监测日 as varchar(2)) as datetime) between b.起始日期 and b.结止日期
	left join CTE_FQ as c
	on b.执行标准代码=c.标准代码 and b.执行标准条件代码=c.条件编码 and b.监测项目编号=c.监测项目编号
	where a.监测年=@year;
	
	--废气无组织排放标准
	with CTE_WZZ as
	(
		select 标准代码,监测项目编号,条件编码,排放单位,排放上限,排放下限,排放上限运算符,排放下限运算符
		from 系统_污染物标准排放明细 where 监测类型='4'
	)
	--更新废气无组织数据中的排放标准值
	update 业务_废气无组织排放监测数据
	set
	执行标准代码=b.执行标准代码,
	执行标准条件代码=b.执行标准条件代码,
	排放单位=c.排放单位,
	排放上限=c.排放上限,
	排放下限=c.排放下限,
	排放上限运算符=c.排放上限运算符,
	排放下限运算符=c.排放下限运算符,
	污染物浓度是否达标=dbo.GetIsOverStarndard(a.污染物浓度,c.排放下限,c.排放上限,a.监测项目编号)
	from 
	业务_废气无组织排放监测数据 as a inner join 业务_企业监测项目时间段 as b 
	on a.监测年=b.监测年 and a.企业代码=b.企业代码 and a.企业类型=b.企业类型 and a.监测点代码=b.监测点代码 and a.监测点名称=b.监测点名称 and a.监测项目编号=b.监测项目编号
	and cast(cast(a.监测年 as varchar(4))+'-'+cast(a.监测月 as varchar(2))+'-'+cast(a.监测日 as varchar(2)) as datetime) between b.起始日期 and b.结止日期
	left join CTE_WZZ as c
	on b.执行标准代码=c.标准代码 and b.执行标准条件代码=c.条件编码 and b.监测项目编号=c.监测项目编号
	where a.监测年=@year;
	 
	--废水监测项目排放标准
	with CTE_FS as
	(
		select 标准代码,条件编码,排放上限,排放下限,排放上限运算符,排放下限运算符,排放单位,监测项目编号 
		from 系统_污染物标准排放明细 where 监测类型='2' and 监测项目编号<>'W_1'
		union all
		select 标准代码,条件编码,排放上限,排放下限,排放上限运算符,排放下限运算符,排放单位,监测项目编号 
		from 系统_污染物标准排放明细 where 监测类型='7' and 监测项目编号='W_1'
	)
	--更新废水数据中的排放标准值
	update 业务_废水监测数据
	set 
	执行标准代码=b.执行标准代码,
	执行标准条件代码=b.执行标准条件代码,
	排放单位=c.排放单位,
	排放上限=c.排放上限,
	排放下限=c.排放下限,
	排放上限运算符=c.排放上限运算符,
	排放下限运算符=c.排放下限运算符,
	污染物浓度是否达标=dbo.GetIsOverStarndard(a.污染物浓度,c.排放下限,c.排放上限,a.监测项目编号),
	超标倍数=dbo.GetOverStarndardNum(a.污染物浓度,c.排放下限,c.排放上限,a.监测项目编号)
	from 
	业务_废水监测数据 as a inner join 业务_企业监测项目时间段 as b 
	on a.监测年=b.监测年 and a.企业代码=b.企业代码 and a.企业类型=b.企业类型 and a.监测点代码=b.监测点代码 and a.监测点名称=b.监测点名称 and a.监测项目编号=b.监测项目编号
	and cast(cast(a.监测年 as varchar(4))+'-'+cast(a.监测月 as varchar(2))+'-'+cast(a.监测日 as varchar(2)) as datetime) between b.起始日期 and b.结止日期
	left join CTE_FS as c
	on b.执行标准代码=c.标准代码 and b.执行标准条件代码=c.条件编码 and b.监测项目编号=c.监测项目编号
	where a.监测年=@year and b.企业类型<>2;

	--污水处理厂监测项目排放标准
	with CTE_WS as
	(
		select 标准代码,条件编码,排放上限,排放下限,排放上限运算符,排放下限运算符,排放单位,监测项目编号 
		from 系统_污染物标准排放明细 where 监测类型='2' and 监测项目编号<>'W_1'
		union all
		select 标准代码,条件编码,排放上限,排放下限,排放上限运算符,排放下限运算符,排放单位,监测项目编号 
		from 系统_污染物标准排放明细 where 监测类型='7' and 监测项目编号='W_1'
	)
	--更新污水处理厂数据中的排放标准值,只更新排放上限或者排放下限与监测时间段内的标准不相等的数据
	update 业务_污水处理厂监测数据
	set 
	执行标准代码=b.执行标准代码,
	执行标准条件代码=b.执行标准条件代码,
	排放单位=c.排放单位,
	排放上限=c.排放上限,
	排放下限=c.排放下限,
	排放上限运算符=c.排放上限运算符,
	排放下限运算符=c.排放下限运算符,
	浓度是否达标=dbo.GetIsOverStarndard(a.出口污染物浓度,c.排放下限,c.排放上限,a.监测项目编号),
	超标倍数=dbo.GetOverStarndardNum(a.出口污染物浓度,c.排放下限,c.排放上限,a.监测项目编号)
	from 
	业务_污水处理厂监测数据 as a inner join 业务_企业监测项目时间段 as b 
	on a.监测年=b.监测年 and a.企业代码=b.企业代码 and b.企业类型=2 and a.监测项目编号=b.监测项目编号
	and cast(cast(a.监测年 as varchar(4))+'-'+cast(a.监测月 as varchar(2))+'-'+cast(a.监测日 as varchar(2)) as datetime) between b.起始日期 and b.结止日期
	left join CTE_WS as c
	on b.执行标准代码=c.标准代码 and b.执行标准条件代码=c.条件编码 and b.监测项目编号=c.监测项目编号
	where a.监测年=@year;