IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[GasOnlineCompare]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[GasOnlineCompare]
GO

-- =============================================
-- exec GasOnlineCompare 1,1,'','','','','',''
-- example:		
-- Author:		<Alex_QY>
-- Create date: <Create Date,2011-10-26,>
-- Description:	<Description,废水在线比对评价,>
-- =============================================
CREATE PROCEDURE [dbo].[GasOnlineCompare]
(
	@pjtype int,
	@type int,
	@waterControlCode varchar(100),
	@gasControlCode varchar(100),
	@year varchar(4),
	@quarter varchar(50),
	@startDate varchar(20),
	@endDate varchar(20),
	@cityCode varchar(max),
	@projectCode varchar(max),
	@hangyecode varchar(max),
	@projectArea varchar(50)
)
as
begin
declare @sql varchar(max)
/*构造条件*/
declare @condition varchar(max)
if(@year='0')
begin
	set @condition=' and datediff(dd,a.监测日期,'+''''+@startDate+''''+')<=0'+
			   ' and datediff(dd,a.监测日期,'+''''+@endDate+''''+')>=0'
end
else
begin
set @condition=' and a.监测年='+@year+' and a.季度 in('+@quarter+')'
end
if	@waterControlCode<>'' 
begin
set @condition=@condition+' and b.污染源控制级别代码 in('+@waterControlCode+')'
end 
if	@gasControlCode<>'' 
begin
set @condition=@condition+' and b.污染源控制级别代码气 in('+@gasControlCode+')'
end 
if	@cityCode<>''   
begin
set @condition=@condition+' and b.行政区代码 in('+@cityCode+')'
end 
if	@projectCode<>'' 
begin
set @condition=@condition+' and a.监测项目编号='''+@projectCode+''' '
end 
if	@hangyecode<>'' 
begin
set @condition=@condition+' and b.行业代码 in('+@hangyecode+')'
end 	   
if (@type=3 and @projectArea<>'')
begin
	set @condition=@condition+' and 专题区域编码 in('+@projectArea+')'
end


if @type=1 --计算标准:地区(省)
begin
set @sql='select 监测年,省 as 行政区,省代码 as 行政区代码, count(企业代码) as 安装设备企业数,SUM(监测系统数) as 监测系统数,
		CAST(AVG(监测系统合格率) as decimal(18,3)) as 监测系统合格率
		from
		(
			select 监测年,省,省代码,企业代码,count(监测系统ID) as 监测系统数,avg(监测系统合格率) as 监测系统合格率 from
			(
				select 监测年,省,省代码,企业代码,监测系统ID,cast(sum(是否达标) as decimal(18,2))/count(是否达标) as 监测系统合格率
				from
				(
					select a.监测年,a.季度,c.省,c.省代码,a.企业代码,a.监测系统ID,监测项目编号,次数,a.是否达标 
					from 业务_废气在线比对_次达标情况 a join V_工业和固废企业_简单 b
					on a.监测年=b.监测年 and a.企业代码=b.企业代码 and a.企业类型=b.企业类型
					join (select 代码名称 as 省,代码编码 as 省代码 from 系统_代码 where 代码类型编码=''14'') c 
					on substring(b.行政区代码,1,2)+''0000''=c.省代码
					inner join
					(
						select 监测项目编码,监测项目名称 from 业务_抽测比对评价项目 
						where 水气类别=''Gas'' and 主体类别=''BD''
					) d on a.监测项目编号=d.监测项目编码
					where a.监测系统ID is not null '+@condition+'
				) a group by 监测年,省,省代码,企业代码,监测系统ID
			) a group by  监测年,省,省代码,企业代码
		) a group by 监测年,省,省代码
		order by 监测年,省代码'
end
if @type=2 --计算标准:地区(市)
begin
set @sql='select 监测年,省+''/''+市 as 行政区,市代码 as 行政区代码,count(企业代码) as 安装设备企业数,SUM(监测系统数) as 监测系统数,
		CAST(AVG(监测系统合格率) as decimal(18,3)) as 监测系统合格率
		from
		(
			select 监测年,省,省代码,市,市代码,企业代码,count(监测系统ID) as 监测系统数,avg(监测系统合格率) as 监测系统合格率 from
			(
				select 监测年,省,省代码,市,市代码,企业代码,监测系统ID,cast(sum(是否达标) as decimal(18,2))/count(是否达标) as 监测系统合格率
				from
				(
					select a.监测年,a.季度,c.省,c.省代码,d.市,d.市代码,a.企业代码,a.监测系统ID,a.监测设备ID,监测项目编号,次数,a.是否达标 
					from 业务_废气在线比对_次达标情况 a join V_工业和固废企业_简单 b
					on a.监测年=b.监测年 and a.企业代码=b.企业代码 and a.企业类型=b.企业类型
					join (select 代码名称 as 省,代码编码 as 省代码 from 系统_代码 where 代码类型编码=''14'') c 
					on substring(b.行政区代码,1,2)+''0000''=c.省代码
					join (select 代码名称 as 市,代码编码 as 市代码 from 系统_代码 where 代码类型编码=''14'') d 
					on substring(b.行政区代码,1,4)++''00''=d.市代码
					inner join
					(
						select 监测项目编码,监测项目名称 from 业务_抽测比对评价项目 
						where 水气类别=''Gas'' and 主体类别=''BD''
					) e on a.监测项目编号=e.监测项目编码			
					where a.监测系统ID is not null'+@condition+'
				) a group by 监测年,省,省代码,市,市代码,企业代码,监测系统ID
			) a group by 监测年,省,省代码,市,市代码,企业代码
		) aa group by 监测年,省,省代码,市,市代码
		order by 监测年,省代码,市代码'
end
if @type=3 --计算标准:专题区域
begin
set @sql='select 监测年,专题区域名称 as 行政区,专题区域编码 as 行政区代码, count(企业代码) as 安装设备企业数,SUM(监测系统数) as 监测系统数,
		CAST(AVG(监测系统合格率) as decimal(18,3)) as 监测系统合格率
		from
		(
			select 监测年,专题区域名称,专题区域编码,企业代码,count(监测系统ID) as 监测系统数,avg(监测系统合格率) as 监测系统合格率 from
			(
				select 监测年,专题区域名称,专题区域编码,企业代码,监测系统ID,cast(sum(是否达标) as decimal(18,2))/count(是否达标) as 监测系统合格率
				from
				(
					select a.监测年,a.季度,c.专题区域名称,c.专题区域编码,a.企业代码,a.监测系统ID,a.监测设备ID,监测项目编号,次数,a.是否达标 
					from 业务_废气在线比对_次达标情况 a join V_工业和固废企业_简单 b
					on a.监测年=b.监测年 and a.企业代码=b.企业代码 and a.企业类型=b.企业类型
					join 
					(
						select c.代码名称,c.代码编码 as 专题区域编码,c.代码名称 as 专题区域名称,d.行政区编码 from 系统_代码 c 
						join 系统_专题区域代码 d on c.ID=d.区域类型编码 where c.代码类型编码=33
					) c
					on b.行政区代码=c.行政区编码
					inner join
					(
						select 监测项目编码,监测项目名称 from 业务_抽测比对评价项目 
						where 水气类别=''Gas'' and 主体类别=''BD''
					) d on a.监测项目编号=d.监测项目编码			
					where a.监测系统ID is not null'+@condition+'
				) a group by 监测年,专题区域名称,专题区域编码,企业代码,监测系统ID
			) a group by 监测年,专题区域名称,专题区域编码,企业代码
		) aaaaaa group by 监测年,专题区域名称,专题区域编码
		order by 监测年,专题区域编码'
end
exec(@sql)
end

GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[GasOnlineCompareCity]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[GasOnlineCompareCity]
GO

-- =================================================================================
-- exec GasOnlineCompareCity 2,1,'','1','2011-10-01','2011-12-31','4','','G_39',''
-- example:		
-- Author:		<hanfei>
-- Create date: <Create Date,2011-10-26,>
-- Description:	<Description,废气在线比对评价,>
-- =================================================================================
CREATE PROCEDURE [dbo].[GasOnlineCompareCity]
(
	@pjtype int,
	@type int,
	@waterControlCode varchar(100),
	@gasControlCode varchar(100),
	@year varchar(4),
	@quarter varchar(50),
	@startDate varchar(20),
	@endDate varchar(20),
	@cityCode varchar(max),
	@projectCode varchar(max),
	@hangyecode varchar(max),
	@primary varchar(50)
)
as
begin
declare @sql varchar(max)
/*构造条件*/
declare @condition varchar(max)
if(@year='0')
begin
	set @condition=' and datediff(dd,a.监测日期,'+''''+@startDate+''''+')<=0'+
			   ' and datediff(dd,a.监测日期,'+''''+@endDate+''''+')>=0'
end
else
begin
set @condition=' and a.监测年='+@year+' and a.季度 in('+@quarter+')'
end
if	@waterControlCode<>'' 
begin
set @condition=@condition+' and b.污染源控制级别代码 in('+@waterControlCode+')'
end 
if	@gasControlCode<>'' 
begin
set @condition=@condition+' and b.污染源控制级别代码气 in('+@gasControlCode+')'
end
if	@cityCode<>''   
begin
set @condition=@condition+' and b.行政区代码 in('+@cityCode+')'
end 
if	@projectCode<>'' 
begin
set @condition=@condition+' and a.监测项目编号='''+@projectCode+''' '
end 
if	@hangyecode<>'' 
begin
set @condition=@condition+' and b.行业代码 in('+@hangyecode+')'
end
if @primary<>''
begin
	if @type=1
	begin
		set @condition=@condition+' and left(b.行政区代码,2)+''0000'' = '''+@primary+''''
	end
	if @type=2
	begin
		set @condition=@condition+' and left(b.行政区代码,4)+''00'' = '''+@primary+''''
	end
	if @type=3
	begin
		set @condition=@condition+' and 专题区域编码 = '''+@primary+''''
	end
end 

--@pjtype 暂时不进行判断
if(@type=1 or @type=2)
begin
set @sql='
	select CONVERT(nvarchar(10),a.监测日期,23) as 监测日期,b.行政区代码,b.企业代码,b.详细名称,c.监测点代码,c.监测点名称,e.安装位置,a.监测年,次数,b.行业代码,
	监测项目名称,a.监测项目编号,f.监测设备型号,f.设备生产厂家,手工监测数据,自动监测数据,评判标准 as 标准,是否达标 as 是否合格,'''' as 允许绝对偏差比对,'''' as 允许相对偏差比对,'''' as 允许相对准确度比对,cast(比对结果 as nvarchar) as 监测相对偏差
	into #temp from 业务_废气在线比对_次达标情况 a join V_工业和固废企业_简单 b
	on a.监测年=b.监测年 and a.企业代码=b.企业代码 and a.企业类型=b.企业类型
	inner join 业务_废气监测点信息 as c
	on a.监测年=c.监测年 and a.企业代码=c.企业代码 and a.监测点代码=c.监测点代码 and a.企业类型=c.企业类型
	inner join
	(
		select 监测项目编码,监测项目名称 from 业务_抽测比对评价项目 
		where 水气类别=''Gas'' and 主体类别=''BD''
	) d on a.监测项目编号=d.监测项目编码
	inner join 业务_在线监测系统 as e
	on a.监测系统ID=e.ID and a.监测年=e.监测年 and a.企业代码=e.企业代码 and a.企业类型=b.企业类型 and a.监测点代码=e.监测点代码
	inner join 业务_在线监测系统_项目 as f
	on e.id=f.监测系统ID号 and a.监测项目编号=f.监测项目编号
	where a.监测系统ID is not null ' + @condition+'
	select b.*,省级行政区名称,市级行政区名称,区县名称,行业,''实际样品'' as 数据类型 from #temp as b
	inner join (select 代码名称 as 省级行政区名称,代码编码 from 系统_代码 where 代码类型编码=''14'') c1 
	on substring(b.行政区代码,1,2)+''0000''=c1.代码编码
	inner join (select 代码名称 as 市级行政区名称,代码编码 from 系统_代码 where 代码类型编码=''14'') c2 
	on substring(b.行政区代码,1,4)+''00''=c2.代码编码
	inner join (select 代码名称 as 区县名称,代码编码 from 系统_代码 where 代码类型编码=''14'') c3 
	on b.行政区代码=c3.代码编码
	inner join (select 代码名称 as 行业,代码编码 from 系统_代码 where 代码类型编码=''15'') c4
	on b.行业代码=c4.代码编码
	order by 监测日期 desc,b.行政区代码,详细名称,监测点名称,次数,监测项目名称'
end
if(@type=3)
begin
set @sql='
	select CONVERT(nvarchar(10),a.监测日期,23) as 监测日期,b.行政区代码,b.企业代码,b.详细名称,c.监测点代码,c.监测点名称,e.安装位置,a.监测年,次数,b.行业代码,
	a.监测项目编号,监测项目名称,f.监测设备型号,f.设备生产厂家,手工监测数据,自动监测数据,评判标准 as 标准,是否达标 as 是否合格,'''' as 允许绝对偏差比对,'''' as 允许相对偏差比对,'''' as 允许相对准确度比对,cast(比对结果 as nvarchar) as 监测相对偏差
	into #temp from 业务_废气在线比对_次达标情况 a join V_工业和固废企业_简单 b
	on a.监测年=b.监测年 and a.企业代码=b.企业代码 and a.企业类型=b.企业类型
	inner join 业务_废气监测点信息 as c
	on a.监测年=c.监测年 and a.企业代码=c.企业代码 and a.监测点代码=c.监测点代码 and a.企业类型=c.企业类型
	inner join 
	(
		select c.代码名称,c.代码编码 as 专题区域编码,d.行政区名称 as 专题区域名称,d.行政区编码 from 系统_代码 c 
		join 系统_专题区域代码 d on c.ID=d.区域类型编码 where c.代码类型编码=33
	) z
	on b.行政区代码=z.行政区编码
	inner join
	(
		select 监测项目编码,监测项目名称 from 业务_抽测比对评价项目 
		where 水气类别=''Gas'' and 主体类别=''BD''
	) d on a.监测项目编号=d.监测项目编码
	inner join 业务_在线监测系统 as e
	on a.监测系统ID=e.ID and a.监测年=e.监测年 and a.企业代码=e.企业代码 and a.企业类型=b.企业类型 and a.监测点代码=e.监测点代码
	inner join 业务_在线监测系统_项目 as f
	on e.id=f.监测系统ID号 and a.监测项目编号=f.监测项目编号
	where a.监测系统ID is not null ' + @condition+'
	select b.*,省级行政区名称,市级行政区名称,区县名称,行业,''实际样品'' as 数据类型 from #temp as b
	inner join (select 代码名称 as 省级行政区名称,代码编码 from 系统_代码 where 代码类型编码=''14'') c1 
	on substring(b.行政区代码,1,2)+''0000''=c1.代码编码
	inner join (select 代码名称 as 市级行政区名称,代码编码 from 系统_代码 where 代码类型编码=''14'') c2 
	on substring(b.行政区代码,1,4)+''00''=c2.代码编码
	inner join (select 代码名称 as 区县名称,代码编码 from 系统_代码 where 代码类型编码=''14'') c3 
	on b.行政区代码=c3.代码编码
	inner join (select 代码名称 as 行业,代码编码 from 系统_代码 where 代码类型编码=''15'') c4
	on b.行业代码=c4.代码编码
	order by 监测日期 desc,b.行政区代码,详细名称,监测点名称,次数,监测项目名称'
end
exec(@sql)
end


GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WaterOnlineCompare]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[WaterOnlineCompare]
GO

-- exec WaterOnlineCompare 1,1,'','','','','','','',''
CREATE PROCEDURE [dbo].[WaterOnlineCompare]
(
	@pjtype int,
	@type int,
	@waterControlCode varchar(100),
	@gasControlCode varchar(100),
	@year varchar(4),
	@quarter varchar(50),
	@startDate varchar(20),
	@endDate varchar(20),
	@cityCode varchar(max),
	@projectCode varchar(max),
	@getWaterCode varchar(max),
	@hangyecode varchar(max),
	@projectArea varchar(50)
)
as
begin
declare @sql varchar(max)
/*构造条件*/
declare @condition varchar(max)
if(@year='0')
begin
set @condition=' and datediff(dd,convert(datetime,convert(varchar(10),a.监测年)'+'+'+''''+'-'+''''+'+'+'convert(varchar(10),a.监测月)'+'+'+''''+'-'+''''+'+'+'convert(varchar(10),a.监测日),120),'+''''+@startDate+''''+')<=0'+
			   ' and datediff(dd,convert(datetime,convert(varchar(10),a.监测年)'+'+'+''''+'-'+''''+'+'+'convert(varchar(10),a.监测月)'+'+'+''''+'-'+''''+'+'+'convert(varchar(10),a.监测日),120),'+''''+@endDate+''''+')>=0'
end
else
begin
set @condition=' and a.监测年='+@year+' and a.季度 in('+@quarter+')'
end
if	@waterControlCode<>'' 
begin
set @condition=@condition+' and b.污染源控制级别代码 in('+@waterControlCode+')'
end 
if	@gasControlCode<>'' 
begin
set @condition=@condition+' and b.污染源控制级别代码气 in('+@gasControlCode+')'
end 
if	@cityCode<>''   
begin
set @condition=@condition+' and b.行政区代码 in('+@cityCode+')'
end 
if	@projectCode<>'' 
begin
set @condition=@condition+' and a.监测项目编号='''+@projectCode+''' '
end 
if	@getWaterCode<>''
begin
set @condition=@condition+' and c.受纳水体代码 in('+@getWaterCode+') '
end 
if	@hangyecode<>'' 
begin
set @condition=@condition+' and b.行业代码 in('+@hangyecode+')'
end 	   
declare @projcetAreaWhere varchar(max)   
set @projcetAreaWhere = ''
if (@type=3 and @projectArea<>'')
begin
	set @projcetAreaWhere=' where 专题区域编码 in('+@projectArea+')'
end

if OBJECT_ID('tempdb..##tmp_WS') is not null begin drop table ##tmp_WS end

set @sql='select a.监测年,a.季度,次数,b.行政区代码,substring(b.行政区代码,1,2)+''0000'' as 省代码,substring(b.行政区代码,1,4)+''00'' as 市代码,b.详细名称,a.企业代码,
		a.监测系统ID,a.监测项目编号,d.监测项目名称,e.监测系统名称,e.监测系统型号,e.集成厂家,f.监测原理,f.监测设备型号,f.设备生产厂家,a.是否达标,a.数据类型编码
		into #t from 业务_废水在线比对 a 
		inner join V_工业和固废企业_简单 b on a.监测年=b.监测年 and a.企业代码=b.企业代码 and a.企业类型=b.企业类型
		inner join 业务_废水排口信息 c on a.监测年=c.监测年 and a.企业类型=c.企业类型 and a.监测点代码=c.监测点代码 and a.企业代码=c.企业代码
		inner join
		(
			select 监测项目编码,监测项目名称 from 业务_抽测比对评价项目 
			where 水气类别=''Water'' and 主体类别=''BD''
		) d on a.监测项目编号=d.监测项目编码
		inner join 业务_在线监测系统 as e on a.监测系统ID=e.id
		inner join 业务_在线监测系统_项目 as f on e.id=f.监测系统ID号 and a.监测项目编号=f.监测项目编号
		where a.监测系统ID is not null and 数据类型编码 is not null '+@condition+'
		
		select 监测年,季度,省代码,市代码,企业代码,监测系统ID,监测项目编号,次数,行政区代码,
		case when COD替代次数>0 and COD替代合格次数=COD替代次数 and 质控样合格次数=质控样次数 then 1
			 when COD替代次数=0 and 质控样合格次数>=2 and 实际样品合格次数>=2 then 1 else 0 end as 是否合格
		into ##tmp_WS from
		(
			select 监测年,季度,省代码,市代码,企业代码,监测系统ID,监测项目编号,次数,行政区代码,
			sum(case when 数据类型编码=1 then 1 else 0 end) as 实际样品次数,
			sum(case when 数据类型编码=1 then 是否达标 else 0 end) as 实际样品合格次数,
			sum(case when 数据类型编码=2 then 1 else 0 end) as 质控样次数,
			sum(case when 数据类型编码=2 then 是否达标 else 0 end) as 质控样合格次数,
			sum(case when 数据类型编码=3 then 1 else 0 end) as COD替代次数,
			sum(case when 数据类型编码=3 then 是否达标 else 0 end) as COD替代合格次数
			from #t as t group by 监测年,季度,行政区代码,省代码,市代码,企业代码,监测系统ID,监测项目编号,次数
		) as t'
exec(@sql)

if @type=1 --计算标准:地区(省)
begin
	select 监测年,省 as 行政区,省代码 as 行政区代码, count(企业代码) as 安装设备企业数,SUM(监测系统数) as 监测系统数,
	cast(avg(监测系统合格率) as decimal(18,3)) as 监测系统合格率 from
	(
		select 监测年,省,省代码,企业代码,count(监测系统ID) as 监测系统数,cast(sum(监测系统是否合格) as decimal(18,2))/count(监测系统是否合格) as 监测系统合格率 from
		(
			select 监测年,省,省代码,企业代码,监测系统ID,次数,case when count(是否合格)=sum(是否合格) then 1 else 0 end as 监测系统是否合格 from
			(
				select 监测年,季度,次数,省,a.省代码,企业代码,监测系统ID,监测项目编号,是否合格
				from ##tmp_WS as a inner join (select 代码名称 as 省,代码编码 as 省代码 from 系统_代码 where 代码类型编码='14') b
				on a.省代码=b.省代码
			) as t group by 监测年,省,省代码,企业代码,监测系统ID,次数
		) as t group by 监测年,省,省代码,企业代码,监测系统ID
	) as t group by 监测年,省,省代码
	order by 监测年,省代码
end

if @type=2 --计算标准:地区(市)
begin
	select 监测年,省+'/'+市 as 行政区,市代码 as 行政区代码, count(企业代码) as 安装设备企业数,SUM(监测系统数) as 监测系统数,
	cast(avg(监测系统合格率) as decimal(18,3)) as 监测系统合格率 from
	(
		select 监测年,省,省代码,市代码,市,企业代码,count(监测系统ID) as 监测系统数,cast(sum(监测系统是否合格) as decimal(18,2))/count(监测系统是否合格) as 监测系统合格率 from
		(
			select 监测年,省,省代码,市,市代码,企业代码,监测系统ID,次数,case when count(是否合格)=sum(是否合格) then 1 else 0 end as 监测系统是否合格 from
			(
				select 监测年,季度,次数,省,a.省代码,a.市代码,市,企业代码,监测系统ID,监测项目编号,是否合格
				from ##tmp_WS as a inner join (select 代码名称 as 省,代码编码 as 省代码 from 系统_代码 where 代码类型编码='14') b on a.省代码=b.省代码
				inner join (select 代码名称 as 市,代码编码 as 市代码 from 系统_代码 where 代码类型编码='14') c on a.市代码=c.市代码
			) as t group by 监测年,省,省代码,市代码,市,企业代码,监测系统ID,次数
		) as t group by 监测年,省,省代码,市代码,市,企业代码,监测系统ID
	) as t group by 监测年,省,省代码,市代码,市
	order by 监测年,省代码,市代码
end

if @type=3 --计算标准:专题区域
begin
	set @sql=
	'select 监测年,专题区域名称 as 行政区,专题区域编码 as 行政区代码, count(企业代码) as 安装设备企业数,SUM(监测系统数) as 监测系统数,
	cast(avg(监测系统合格率) as decimal(18,3)) as 监测系统合格率 from
	(
		select 监测年,专题区域编码,专题区域名称,企业代码,count(监测系统ID) as 监测系统数,cast(sum(监测系统是否合格) as decimal(18,2))/count(监测系统是否合格) as 监测系统合格率 from
		(
			select 监测年,专题区域编码,专题区域名称,企业代码,次数,监测系统ID,case when count(是否合格)=sum(是否合格) then 1 else 0 end as 监测系统是否合格 from
			(
				select 监测年,季度,次数,专题区域编码,专题区域名称,企业代码,监测系统ID,监测项目编号,是否合格
				from ##tmp_WS as a inner join 
				(
					select c.代码名称,c.代码编码 as 专题区域编码,c.代码名称 as 专题区域名称,d.行政区编码 from 系统_代码 c 
					join 系统_专题区域代码 d on c.ID=d.区域类型编码 where c.代码类型编码=33
				) b
				on a.行政区代码=b.行政区编码'+@projcetAreaWhere+'
			) as t group by 监测年,专题区域编码,专题区域名称,企业代码,监测系统ID,次数
		) as t group by 监测年,专题区域编码,专题区域名称,企业代码,监测系统ID
	) as t group by 监测年,专题区域编码,专题区域名称
	order by 监测年,专题区域编码'
	exec(@sql)
end

if OBJECT_ID('tempdb..##tmp_WS') is not null begin drop table ##tmp_WS end
end

GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WaterOnlineCompareCity]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[WaterOnlineCompareCity]
GO

-- =============================================
-- exec WaterOnlineCompareCity 1,1,'','','',1,'','',''
-- example:		
-- Author:		<hanfei>
-- Create date: <Create Date,2011-10-26,>
-- Description:	<Description,废水在线比对评价,>
-- =============================================
CREATE PROCEDURE [dbo].[WaterOnlineCompareCity]
(
	@pjtype int,
	@type int,
	@waterControlCode varchar(100),
	@gasControlCode varchar(100),
	@year varchar(4),
	@quarter varchar(50),
	@startDate varchar(20),
	@endDate varchar(20),
	@cityCode varchar(max),
	@projectCode varchar(max),
	@getWaterCode varchar(max),
	@hangyecode varchar(max),
	@primary varchar(50)
)
as
begin
declare @sql varchar(max)
/*构造条件*/
declare @condition varchar(max)
if(@year='0')
begin
set @condition=' and datediff(dd,convert(datetime,convert(varchar(10),a.监测年)'+'+'+''''+'-'+''''+'+'+'convert(varchar(10),a.监测月)'+'+'+''''+'-'+''''+'+'+'convert(varchar(10),a.监测日),120),'+''''+@startDate+''''+')<=0'+
			   ' and datediff(dd,convert(datetime,convert(varchar(10),a.监测年)'+'+'+''''+'-'+''''+'+'+'convert(varchar(10),a.监测月)'+'+'+''''+'-'+''''+'+'+'convert(varchar(10),a.监测日),120),'+''''+@endDate+''''+')>=0'
end
else
begin
set @condition=' and a.监测年='+@year+' and a.季度 in('+@quarter+')'
end
if	@waterControlCode<>'' 
begin
set @condition=@condition+' and b.污染源控制级别代码 in('+@waterControlCode+')'
end 
if	@gasControlCode<>'' 
begin
set @condition=@condition+' and b.污染源控制级别代码气 in('+@gasControlCode+')'
end 
if	@cityCode<>''   
begin
set @condition=@condition+' and b.行政区代码 in('+@cityCode+')'
end 
if	@projectCode<>'' 
begin
set @condition=@condition+' and a.监测项目编号='''+@projectCode+''' '
end 
if	@getWaterCode<>''
begin
set @condition=@condition+' and c.受纳水体代码 in('+@getWaterCode+') '
end 
if	@hangyecode<>'' 
begin
set @condition=@condition+' and b.行业代码 in('+@hangyecode+')'
end
/*专题区域条件*/
declare @pjWhere varchar(50)
set @pjWhere = ''
if @primary<>''
begin
	if @type=1
	begin
		set @condition=@condition+' and left(b.行政区代码,2)+''0000'' = '''+@primary+''''
	end
	if @type=2
	begin
		set @condition=@condition+' and left(b.行政区代码,4)+''00'' = '''+@primary+''''
	end
	if @type=3
	begin
		set @pjWhere=' where 专题区域编码 = '''+@primary+''''
	end
end   

--@pjtype 暂时不进行判断
if(@type=1 or @type=2)
begin
set @sql=
	'select cast(a.监测年 as varchar(50))+''-''+cast(a.监测月 as varchar(50))+''-''+cast(a.监测日 as varchar(50))as 监测日期,
	b.行政区代码,b.行业代码,b.详细名称,c.监测点名称,e.安装位置,次数,a.数据类型编码,
	监测项目名称,f.监测设备型号,f.设备生产厂家,手工监测数据,自动监测数据,评价标准 as 标准,是否达标 as 是否合格,'''' as 允许绝对偏差比对,'''' as 允许相对偏差比对,'''' as 允许相对准确度比对,cast(比对结果 as nvarchar) as 监测相对偏差
	into #temp from 业务_废水在线比对 a 
	inner join V_工业和固废企业_简单 b
	on a.监测年=b.监测年 and a.企业代码=b.企业代码 and a.企业类型=b.企业类型
	inner join 业务_废水排口信息 as c
	on a.监测年=c.监测年 and a.企业代码=c.企业代码 and a.监测点代码=c.监测点代码 and a.企业类型=c.企业类型
	inner join
	(
		select 监测项目编码,监测项目名称 from 业务_抽测比对评价项目 
		where 水气类别=''Water'' and 主体类别=''BD''
	) d on a.监测项目编号=d.监测项目编码
	inner join 业务_在线监测系统 as e
	on a.监测系统ID=e.ID and a.监测年=e.监测年 and a.企业代码=e.企业代码 and a.企业类型=b.企业类型 and a.监测点代码=e.监测点代码
	inner join 业务_在线监测系统_项目 as f
	on e.id=f.监测系统ID号 and a.监测项目编号=f.监测项目编号
	where a.监测系统ID is not null and 数据类型编码 is not null ' + @condition+';
	select b.*,省级行政区名称,市级行政区名称,区县名称,行业,数据类型 from #temp as b
	inner join (select 代码名称 as 省级行政区名称,代码编码 from 系统_代码 where 代码类型编码=''14'') c1 
	on substring(b.行政区代码,1,2)+''0000''=c1.代码编码
	inner join (select 代码名称 as 市级行政区名称,代码编码 from 系统_代码 where 代码类型编码=''14'') c2 
	on substring(b.行政区代码,1,4)+''00''=c2.代码编码
	inner join (select 代码名称 as 区县名称,代码编码 from 系统_代码 where 代码类型编码=''14'') c3 
	on b.行政区代码=c3.代码编码
	inner join (select 代码名称 as 行业,代码编码 from 系统_代码 where 代码类型编码=''15'') c4
	on b.行业代码=c4.代码编码
	inner join (select 代码名称 as 数据类型,代码编码 from 系统_代码 where 代码类型编码=''37'') c5
	on b.数据类型编码=c5.代码编码 order by 监测日期 desc,b.行政区代码,详细名称,监测点名称,次数,监测项目名称'
end
if (@type=3)
begin
	set @sql=
		'select cast(a.监测年 as varchar(50))+''-''+cast(a.监测月 as varchar(50))+''-''+cast(a.监测日 as varchar(50))as 监测日期,
		b.行政区代码,b.行业代码,b.详细名称,c.监测点名称,e.安装位置,次数,a.数据类型编码,
		监测项目名称,f.监测设备型号,f.设备生产厂家,手工监测数据,自动监测数据,评价标准 as 标准,是否达标 as 是否合格,'''' as 允许绝对偏差比对,'''' as 允许相对偏差比对,'''' as 允许相对准确度比对,cast(比对结果 as nvarchar) as 监测相对偏差
		into #temp from 业务_废水在线比对 a 
		inner join V_工业和固废企业_简单 b
		on a.监测年=b.监测年 and a.企业代码=b.企业代码 and a.企业类型=b.企业类型
		inner join 业务_废水排口信息 as c
		on a.监测年=c.监测年 and a.企业代码=c.企业代码 and a.监测点代码=c.监测点代码 and a.企业类型=c.企业类型
		inner join
		(
			select 监测项目编码,监测项目名称 from 业务_抽测比对评价项目 
			where 水气类别=''Water'' and 主体类别=''BD''
		) d on a.监测项目编号=d.监测项目编码
		inner join 业务_在线监测系统 as e
		on a.监测系统ID=e.ID and a.监测年=e.监测年 and a.企业代码=e.企业代码 and a.企业类型=b.企业类型 and a.监测点代码=e.监测点代码
		inner join 业务_在线监测系统_项目 as f
		on e.id=f.监测系统ID号 and a.监测项目编号=f.监测项目编号
		where a.监测系统ID is not null and 数据类型编码 is not null ' + @condition+';
		select * into #temp2 from #temp as a 
		inner join 
		(
			select c.代码名称,c.代码编码 as 专题区域编码,d.行政区名称 as 专题区域名称,d.行政区编码 from 系统_代码 c 
			join 系统_专题区域代码 d on c.ID=d.区域类型编码 where c.代码类型编码=33
		) z
		on a.行政区代码=z.行政区编码 '+@pjWhere+'
		select b.*,省级行政区名称,市级行政区名称,区县名称,行业,数据类型 from #temp2 as b
		inner join (select 代码名称 as 省级行政区名称,代码编码 from 系统_代码 where 代码类型编码=''14'') c1 
		on substring(b.行政区代码,1,2)+''0000''=c1.代码编码
		inner join (select 代码名称 as 市级行政区名称,代码编码 from 系统_代码 where 代码类型编码=''14'') c2 
		on substring(b.行政区代码,1,4)+''00''=c2.代码编码
		inner join (select 代码名称 as 区县名称,代码编码 from 系统_代码 where 代码类型编码=''14'') c3 
		on b.行政区代码=c3.代码编码
		inner join (select 代码名称 as 行业,代码编码 from 系统_代码 where 代码类型编码=''15'') c4
		on b.行业代码=c4.代码编码
		inner join (select 代码名称 as 数据类型,代码编码 from 系统_代码 where 代码类型编码=''37'') c5
		on b.数据类型编码=c5.代码编码 order by 监测日期 desc,b.行政区代码,详细名称,监测点名称,次数,监测项目名称'
end
exec(@sql)
end

GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WsWaterOnlineCompare]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[WsWaterOnlineCompare]
GO

CREATE PROCEDURE [dbo].[WsWaterOnlineCompare]
(
	@pjtype int,
	@type int,
	@WaterControlCode varchar(100),
	@year varchar(4),
	@quarter varchar(50),
	@startDate varchar(20),
	@endDate varchar(20),
	@cityCode varchar(max),
	@projectCode varchar(max),
	@getWaterCode varchar(max),
	@hangyecode varchar(max),
	@projectArea varchar(50)
)
as
begin
declare @sql varchar(max)
/*构造条件*/
declare @condition varchar(max)
if(@year='0')
begin
set @condition=' and datediff(dd,convert(datetime,convert(varchar(10),a.监测年)'+'+'+''''+'-'+''''+'+'+'convert(varchar(10),a.监测月)'+'+'+''''+'-'+''''+'+'+'convert(varchar(10),a.监测日),120),'+''''+@startDate+''''+')<=0'+
			   ' and datediff(dd,convert(datetime,convert(varchar(10),a.监测年)'+'+'+''''+'-'+''''+'+'+'convert(varchar(10),a.监测月)'+'+'+''''+'-'+''''+'+'+'convert(varchar(10),a.监测日),120),'+''''+@endDate+''''+')>=0'
end
else
begin
set @condition=' and a.监测年='+@year+' and a.季度 in('+@quarter+')'
end
--if	@waterControlCode<>'' 
--begin
--set @condition=@condition+' and b.控制级别代码 in('+@waterControlCode+')'
--end 
if	@cityCode<>''   
begin
set @condition=@condition+' and b.行政区代码 in('+@cityCode+')'
end 
if	@projectCode<>'' 
begin
set @condition=@condition+' and a.监测项目编号='''+@projectCode+''' '
end 
if	@getWaterCode<>''
begin
set @condition=@condition+' and b.受纳水体代码 in('+@getWaterCode+') '
end 	
declare @projcetAreaWhere varchar(max) 
set @projcetAreaWhere = ''  
if (@type=3 and @projectArea<>'')
begin
	set @projcetAreaWhere=' where 专题区域编码 in('+@projectArea+')'
end

if OBJECT_ID('tempdb..##tmp_WS') is not null begin drop table ##tmp_WS end

set @sql='select a.监测年,a.季度,次数,b.行政区代码,substring(b.行政区代码,1,2)+''0000'' as 省代码,substring(b.行政区代码,1,4)+''00'' as 市代码,b.详细名称,a.企业代码,
		a.监测系统ID,a.监测项目编号,d.监测项目名称,e.监测系统名称,e.监测系统型号,e.集成厂家,f.监测原理,f.监测设备型号,f.设备生产厂家,a.是否达标,a.数据类型编码
		into #t from 业务_废水在线比对 a 
		inner join 业务_污水处理厂信息 b on a.监测年=b.监测年 and a.企业代码=b.企业代码 and a.企业类型=2
		inner join
		(
			select 监测项目编码,监测项目名称 from 业务_抽测比对评价项目 
			where 水气类别=''Water'' and 主体类别=''BD''
		) d on a.监测项目编号=d.监测项目编码
		inner join 业务_在线监测系统 as e on a.监测系统ID=e.id
		inner join 业务_在线监测系统_项目 as f on e.id=f.监测系统ID号 and a.监测项目编号=f.监测项目编号
		where a.监测系统ID is not null and 数据类型编码 is not null '+@condition+'
		
		select 监测年,季度,省代码,市代码,企业代码,监测系统ID,监测项目编号,次数,行政区代码,
		case when COD替代次数>0 and COD替代合格次数=COD替代次数 and 质控样合格次数=质控样次数 then 1
			 when COD替代次数=0 and 质控样合格次数>=2 and 实际样品合格次数>=2 then 1 else 0 end as 是否合格
		into ##tmp_WS from
		(
			select 监测年,季度,省代码,市代码,企业代码,监测系统ID,监测项目编号,次数,行政区代码,
			sum(case when 数据类型编码=1 then 1 else 0 end) as 实际样品次数,
			sum(case when 数据类型编码=1 then 是否达标 else 0 end) as 实际样品合格次数,
			sum(case when 数据类型编码=2 then 1 else 0 end) as 质控样次数,
			sum(case when 数据类型编码=2 then 是否达标 else 0 end) as 质控样合格次数,
			sum(case when 数据类型编码=3 then 1 else 0 end) as COD替代次数,
			sum(case when 数据类型编码=3 then 是否达标 else 0 end) as COD替代合格次数
			from #t as t group by 监测年,季度,省代码,市代码,企业代码,监测系统ID,监测项目编号,次数,行政区代码
		) as t'
exec(@sql)

if @type=1 --计算标准:地区(省)
begin
	select 监测年,省 as 行政区,省代码 as 行政区代码, count(企业代码) as 安装设备企业数,SUM(监测系统数) as 监测系统数,
	cast(avg(监测系统合格率) as decimal(18,3)) as 监测系统合格率 from
	(
		select 监测年,省,省代码,企业代码,count(监测系统ID) as 监测系统数,avg(监测系统合格率) as 监测系统合格率 from
		(
			select 监测年,省,省代码,企业代码,监测系统ID,cast(sum(是否合格) as decimal(18,2))/count(是否合格) as 监测系统合格率 from
			(
				select 监测年,季度,次数,省,a.省代码,企业代码,监测系统ID,监测项目编号,是否合格
				from ##tmp_WS as a inner join (select 代码名称 as 省,代码编码 as 省代码 from 系统_代码 where 代码类型编码='14') b
				on a.省代码=b.省代码
			) as t group by 监测年,省,省代码,企业代码,监测系统ID
		) as t group by 监测年,省,省代码,企业代码
	) as t group by 监测年,省,省代码
	order by 监测年,省代码
end

if @type=2 --计算标准:地区(市)
begin
	select 监测年,省+'/'+市 as 行政区,市代码 as 行政区代码, count(企业代码) as 安装设备企业数,SUM(监测系统数) as 监测系统数,
	cast(avg(监测系统合格率) as decimal(18,3)) as 监测系统合格率 from
	(
		select 监测年,省,省代码,市代码,市,企业代码,count(监测系统ID) as 监测系统数,avg(监测系统合格率) as 监测系统合格率 from
		(
			select 监测年,省,省代码,市,市代码,企业代码,监测系统ID,cast(sum(是否合格) as decimal(18,2))/count(是否合格) as 监测系统合格率 from
			(
				select 监测年,季度,次数,省,a.省代码,a.市代码,市,企业代码,监测系统ID,监测项目编号,是否合格
				from ##tmp_WS as a inner join (select 代码名称 as 省,代码编码 as 省代码 from 系统_代码 where 代码类型编码='14') b on a.省代码=b.省代码
				inner join (select 代码名称 as 市,代码编码 as 市代码 from 系统_代码 where 代码类型编码='14') c on a.市代码=c.市代码
			) as t group by 监测年,省,省代码,市代码,市,企业代码,监测系统ID
		) as t group by 监测年,省,省代码,市代码,市,企业代码
	) as t group by 监测年,省,省代码,市代码,市
	order by 监测年,省代码,市代码
end

if @type=3 --计算标准:专题区域
begin
	set @sql=
	'select 监测年,专题区域名称 as 行政区,专题区域编码 as 行政区代码, count(企业代码) as 安装设备企业数,SUM(监测系统数) as 监测系统数,
		cast(avg(监测系统合格率) as decimal(18,3)) as 监测系统合格率 from
		(
			select 监测年,专题区域编码,专题区域名称,企业代码,count(监测系统ID) as 监测系统数,avg(监测系统合格率) as 监测系统合格率 from
			(
				select 监测年,专题区域编码,专题区域名称,企业代码,监测系统ID,cast(sum(是否合格) as decimal(18,2))/count(是否合格) as 监测系统合格率 from
				(
					select 监测年,季度,次数,专题区域编码,专题区域名称,企业代码,监测系统ID,监测项目编号,是否合格
					from ##tmp_WS as a inner join 
					(
						select c.代码名称,c.代码编码 as 专题区域编码,c.代码名称 as 专题区域名称,d.行政区编码 from 系统_代码 c 
						join 系统_专题区域代码 d on c.ID=d.区域类型编码 where c.代码类型编码=33
					) b
					on a.行政区代码=b.行政区编码'+@projcetAreaWhere+'
				) as t group by 监测年,专题区域编码,专题区域名称,企业代码,监测系统ID
			) as t group by 监测年,专题区域编码,专题区域名称,企业代码
		) as t group by 监测年,专题区域编码,专题区域名称
		order by 监测年,专题区域编码'
	exec(@sql)
end

if OBJECT_ID('tempdb..##tmp_WS') is not null begin drop table ##tmp_WS end
end

GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WsWaterOnlineCompareCity]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[WsWaterOnlineCompareCity]
GO

-- =============================================
-- exec WaterOnlineCompareCity 1,1,'','','',1,'','',''
-- example:		
-- Author:		<hanfei>
-- Create date: <Create Date,2011-10-26,>
-- Description:	<Description,污水厂在线比对评价,>
-- =============================================
CREATE PROCEDURE [dbo].[WsWaterOnlineCompareCity]
(
	@pjtype int,
	@type int,
	@WaterControlCode varchar(100),
	@year varchar(4),
	@quarter varchar(50),
	@startDate varchar(20),
	@endDate varchar(20),
	@cityCode varchar(max),
	@projectCode varchar(max),
	@getWaterCode varchar(max),
	@hangyecode varchar(max),
	@primary varchar(50)
)
as
begin
declare @sql varchar(max)
/*构造条件*/
declare @condition varchar(max)
if(@year='0')
begin
set @condition=' and datediff(dd,convert(datetime,convert(varchar(10),a.监测年)'+'+'+''''+'-'+''''+'+'+'convert(varchar(10),a.监测月)'+'+'+''''+'-'+''''+'+'+'convert(varchar(10),a.监测日),120),'+''''+@startDate+''''+')<=0'+
			   ' and datediff(dd,convert(datetime,convert(varchar(10),a.监测年)'+'+'+''''+'-'+''''+'+'+'convert(varchar(10),a.监测月)'+'+'+''''+'-'+''''+'+'+'convert(varchar(10),a.监测日),120),'+''''+@endDate+''''+')>=0'
end
else
begin
set @condition=' and a.监测年='+@year+' and a.季度 in('+@quarter+')'
end
--if	@waterControlCode<>'' 
--begin
--set @condition=@condition+' and b.控制级别代码 in('+@waterControlCode+')'
--end 
if	@cityCode<>''   
begin
set @condition=@condition+' and b.行政区代码 in('+@cityCode+')'
end 
if	@projectCode<>'' 
begin
set @condition=@condition+' and a.监测项目编号='''+@projectCode+''' '
end 
if	@getWaterCode<>''
begin
set @condition=@condition+' and b.受纳水体代码 in('+@getWaterCode+') '
end
if @primary<>''
begin
	if @type=1
	begin
		set @condition=@condition+' and left(b.行政区代码,2)+''0000'' = '''+@primary+''''
	end
	if @type=2
	begin
		set @condition=@condition+' and left(b.行政区代码,4)+''00'' = '''+@primary+''''
	end
	if @type=3
	begin
		set @condition=@condition+' and 专题区域编码 = '''+@primary+''''
	end
end 

--@pjtype 暂时不进行判断
if(@type=1 or @type=2)
begin
set @sql='
	select cast(a.监测年 as varchar(50))+''-''+cast(a.监测月 as varchar(50))+''-''+cast(a.监测日 as varchar(50))as 监测日期,
	b.行政区代码,'''' as 行业,'''' as 行业代码,b.详细名称,'''' as 监测点名称,e.安装位置,次数,
	监测项目名称,f.监测设备型号,f.设备生产厂家,a.数据类型编码,手工监测数据,自动监测数据,评价标准 as 标准,是否达标 as 是否合格,'''' as 允许绝对偏差比对,'''' as 允许相对偏差比对,'''' as 允许相对准确度比对,cast(比对结果 as nvarchar) as 监测相对偏差
	into #temp from 业务_废水在线比对 a 
	inner join 业务_污水处理厂信息 b
	on a.监测年=b.监测年 and a.企业代码=b.企业代码 and a.企业类型=2
	inner join
	(
		select 监测项目编码,监测项目名称 from 业务_抽测比对评价项目 
		where 水气类别=''Water'' and 主体类别=''BD''
	) d on a.监测项目编号=d.监测项目编码
	inner join 业务_在线监测系统 as e
	on a.监测系统ID=e.ID and a.监测年=e.监测年 and a.企业代码=e.企业代码
	inner join 业务_在线监测系统_项目 as f
	on e.id=f.监测系统ID号 and a.监测项目编号=f.监测项目编号
	where a.监测系统ID is not null ' + @condition+';
	select b.*,省级行政区名称,市级行政区名称,区县名称,行业,数据类型 from #temp as b
	inner join (select 代码名称 as 省级行政区名称,代码编码 from 系统_代码 where 代码类型编码=''14'') c1 
	on substring(b.行政区代码,1,2)+''0000''=c1.代码编码
	inner join (select 代码名称 as 市级行政区名称,代码编码 from 系统_代码 where 代码类型编码=''14'') c2 
	on substring(b.行政区代码,1,4)+''00''=c2.代码编码
	inner join (select 代码名称 as 区县名称,代码编码 from 系统_代码 where 代码类型编码=''14'') c3 
	on b.行政区代码=c3.代码编码
	inner join (select 代码名称 as 数据类型,代码编码 from 系统_代码 where 代码类型编码=''37'') c5
	on b.数据类型编码=c5.代码编码
	order by 监测日期 desc,b.行政区代码,详细名称,次数,监测项目名称'
end
if(@type=3)
begin
set @sql='
	select cast(a.监测年 as varchar(50))+''-''+cast(a.监测月 as varchar(50))+''-''+cast(a.监测日 as varchar(50))as 监测日期,
	b.行政区代码,'''' as 行业,'''' as 行业代码,b.详细名称,'''' as 监测点名称,e.安装位置,次数,
	监测项目名称,f.监测设备型号,f.设备生产厂家,a.数据类型编码,手工监测数据,自动监测数据,评价标准 as 标准,是否达标 as 是否合格,'''' as 允许绝对偏差比对,'''' as 允许相对偏差比对,'''' as 允许相对准确度比对,cast(比对结果 as nvarchar) as 监测相对偏差
	into #temp from 业务_废水在线比对 a 
	inner join 业务_污水处理厂信息 b
	on a.监测年=b.监测年 and a.企业代码=b.企业代码 and a.企业类型=2
	inner join 
	(
		select c.代码名称,c.代码编码 as 专题区域编码,d.行政区名称 as 专题区域名称,d.行政区编码 from 系统_代码 c 
		join 系统_专题区域代码 d on c.ID=d.区域类型编码 where c.代码类型编码=33
	) z
	on b.行政区代码=z.行政区编码
	inner join
	(
		select 监测项目编码,监测项目名称 from 业务_抽测比对评价项目 
		where 水气类别=''Water'' and 主体类别=''BD''
	) d on a.监测项目编号=d.监测项目编码
	inner join 业务_在线监测系统 as e
	on a.监测系统ID=e.ID and a.监测年=e.监测年 and a.企业代码=e.企业代码
	inner join 业务_在线监测系统_项目 as f
	on e.id=f.监测系统ID号 and a.监测项目编号=f.监测项目编号
	where a.监测系统ID is not null ' + @condition+';
	select b.*,省级行政区名称,市级行政区名称,区县名称,行业,数据类型 from #temp as b
	inner join (select 代码名称 as 省级行政区名称,代码编码 from 系统_代码 where 代码类型编码=''14'') c1 
	on substring(b.行政区代码,1,2)+''0000''=c1.代码编码
	inner join (select 代码名称 as 市级行政区名称,代码编码 from 系统_代码 where 代码类型编码=''14'') c2 
	on substring(b.行政区代码,1,4)+''00''=c2.代码编码
	inner join (select 代码名称 as 区县名称,代码编码 from 系统_代码 where 代码类型编码=''14'') c3 
	on b.行政区代码=c3.代码编码
	inner join (select 代码名称 as 数据类型,代码编码 from 系统_代码 where 代码类型编码=''37'') c5
	on b.数据类型编码=c5.代码编码
	order by 监测日期 desc,b.行政区代码,详细名称,次数,监测项目名称'
end
exec(@sql)
end


GO



--------------------------------
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetChuLiForProvince]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
drop procedure [dbo].[GetChuLiForProvince]
go

CREATE proc [dbo].[GetChuLiForProvince]
(
@year varchar(4),
@Quarter varchar(4)
)
as
begin
if object_id('tempdb..#wuranyuan') is not null 
drop table #wuranyuan
create table #wuranyuan (代码名称 nvarchar(100),代码编码 nvarchar(50),年度 int,季度 int,企业数量 int,达标率 float)
insert into  #wuranyuan exec GetWhaterPolutionAccount  4,@year,@Quarter,'','','','0','0','','1','1','1',''

if object_id('tempdb..#wuranyuanLastYear') is not null 
drop table #wuranyuanLastYear
create table #wuranyuanLastYear (代码名称 nvarchar(100),代码编码 nvarchar(50),年度 int,季度 int,企业数量 int,达标率 float)
declare @lastyear varchar(4)
set @lastyear = @year-1
insert into  #wuranyuanLastYear exec GetWhaterPolutionAccount 4,@lastyear,@Quarter,'','','','0','0','','1','1','1',''

if object_id('tempdb..#wuranyuancod') is not null 
drop table #wuranyuancod
create table #wuranyuancod (代码名称 nvarchar(100),代码编码 nvarchar(50),年度 int,季度 int,企业数量 int,达标率 float)
insert into  #wuranyuancod exec GetWhaterPolutionAccount 4,@year,@Quarter,'','','','0','0','W_11','1','1','1',''

if object_id('tempdb..#wuranyuancodLastYear') is not null 
drop table #wuranyuancodLastYear
create table #wuranyuancodLastYear (代码名称 nvarchar(100),代码编码 nvarchar(50),年度 int,季度 int,企业数量 int,达标率 float)
insert into  #wuranyuancodLastYear exec GetWhaterPolutionAccount 4,@lastyear,@Quarter,'','','','0','0','W_11','1','1','1',''


select t0.代码名称 地区,t1.企业数量 污水处理厂数量,
t1.达标率 废水本季度,t2.达标率 废水去年同期,t3.达标率 cod本季度,
t4.达标率 cod去年同期,t5.平均处理负荷
 from 
 (
	 select 代码编码,代码名称 from 系统_代码 
	 where 代码类型编码=14 and substring(代码编码,3,6)='0000' and 代码编码<>'100000'
 ) as t0
 left join #wuranyuan t1 on(t0.代码编码 = t1.代码编码)
 left join #wuranyuanLastYear t2 on(t0.代码编码 = t2.代码编码)
 left join #wuranyuancod t3 on(t0.代码编码 = t3.代码编码)
 left join #wuranyuancodLastYear t4 on(t0.代码编码 = t4.代码编码)
 left join 
 (
	select 监测年,季度,代码编码,avg(处理负荷) as 平均处理负荷
	from 
	(
	select a.监测年,a.季度,a.次数,substring(行政区代码,1,2)+'0000' as 代码编码,
	a.企业代码,a.出口水量/b.设计处理能力 as 处理负荷,a.出口水量,b.设计处理能力
	from 业务_污水处理厂监测数据 a join 业务_污水处理厂信息 b
	on a.监测年=b.监测年 and a.企业代码=b.企业代码 

	) a 
	where 监测年=2011 and 季度=1
	group by 监测年,季度,代码编码
 ) t5 on(t0.代码编码 = t5.代码编码)
 order by t0.代码编码
end
GO

--------------------------------
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetDuiBiForProvince]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
drop procedure [dbo].[GetDuiBiForProvince]
go

CREATE proc [dbo].[GetDuiBiForProvince]
(
@year varchar(4),
@quarter varchar(4)
)
as
begin

select a.行政区,b.COD监测设备数量 as 废水国控企业COD监测设备数量,b.COD合格率 as 废水国控企业COD合格率,c.氨氮监测设备数量 as 废水国控企业氨氮监测设备数量,c.氨氮合格率 as 废水国控企业氨氮合格率,
d.二氧化硫设备数量,d.二氧化硫合格率,e.氮氧化物设备数量,e.氮氧化物合格率,
f.COD监测设备数量 as 城镇污水处理厂COD监测设备数量,f.COD合格率 as 城镇污水处理厂COD合格率,g.氨氮监测设备数量 as 城镇污水处理厂氨氮监测设备数量,g.氨氮合格率 as 城镇污水处理厂氨氮合格率
from
(
	select 代码编码 as 行政区代码,代码名称 as 行政区 from 系统_代码 
	where 代码类型编码=14 and substring(代码编码,3,4)='0000' and 代码编码<>'100000'
) a left join
(	--废水COD
	select 监测年,季度,省代码 as 行政区代码,count(监测设备ID) as COD监测设备数量,
	cast(sum(是否达标) as decimal(18,2))/count(是否达标) as COD合格率
	from
	(
			select 监测年,季度,省代码,企业代码,监测设备ID,
			case when count(是否达标)-sum(convert(int,是否达标))=0 then 1 else 0 end as 是否达标
			from
			(
				select 监测年,季度,省代码,企业代码,监测设备ID,监测项目编号,次数,
				case when count(是否达标)-sum(convert(int,是否达标))=0 then 1 else 0 end as 是否达标
				from
				(
					select a.监测年,a.季度,substring(a.行政区代码,1,2)+'0000' as 省代码,a.企业代码,a.监测设备ID,监测项目编号,次数,a.是否达标 
					from
					(
						select a.监测年,a.季度,b.行政区代码,a.企业代码,a.监测设备ID,监测项目编号,次数,a.是否达标 
						from 业务_废水在线比对 a join 业务_企业基本信息 b on a.监测年=b.监测年 and a.企业代码=b.企业代码
						join 业务_废水排口信息 c on a.监测年=c.监测年 and a.企业类型=c.企业类型 and a.企业代码=c.企业代码
						join V_工业和固废企业_简单 d on a.监测年=d.监测年 and a.企业代码=d.企业代码
						where a.监测系统ID is not null and a.监测设备ID is not null and d.污染源控制级别代码=1
						and a.监测年=@year and a.季度=@quarter and a.监测项目编号='W_11' and a.企业类型<>'2' 
					) a
				) a group by 监测年,季度,省代码,企业代码,监测设备ID,监测项目编号,次数
			) a group by 监测年,季度,省代码,企业代码,监测设备ID		
	) a group by 监测年,季度,省代码
) b  on a.行政区代码=b.行政区代码
left join 
(	--废水氨氮
	select 监测年,季度,省代码 as 行政区代码,count(监测设备ID) as 氨氮监测设备数量,
	cast(sum(是否达标) as decimal(18,2))/count(是否达标) as 氨氮合格率
	from
	(
			select 监测年,季度,省代码,企业代码,监测设备ID,
			case when count(是否达标)-sum(convert(int,是否达标))=0 then 1 else 0 end as 是否达标
			from
			(
				select 监测年,季度,省代码,企业代码,监测设备ID,监测项目编号,次数,
				case when count(是否达标)-sum(convert(int,是否达标))=0 then 1 else 0 end as 是否达标
				from
				(
					select a.监测年,a.季度,substring(a.行政区代码,1,2)+'0000' as 省代码,a.企业代码,a.监测设备ID,监测项目编号,次数,a.是否达标 
					from
					(
						select a.监测年,a.季度,b.行政区代码,a.企业代码,a.监测设备ID,监测项目编号,次数,a.是否达标 
						from 业务_废水在线比对 a join 业务_企业基本信息 b on a.监测年=b.监测年 and a.企业代码=b.企业代码
						join 业务_废水排口信息 c on a.监测年=c.监测年 and a.企业类型=c.企业类型 and a.企业代码=c.企业代码
						join V_工业和固废企业_简单 d on a.监测年=d.监测年 and a.企业代码=d.企业代码
						where a.监测系统ID is not null and a.监测设备ID is not null and d.污染源控制级别代码=1
						and a.监测年=@year and a.季度=@quarter and a.监测项目编号='W_60' and a.企业类型<>'2' 
					) a
				) a group by 监测年,季度,省代码,企业代码,监测设备ID,监测项目编号,次数
			) a group by 监测年,季度,省代码,企业代码,监测设备ID		
	) a group by 监测年,季度,省代码
) c on a.行政区代码=c.行政区代码
left join 
(	--废气二氧化硫
	select 监测年,季度,省代码 as 行政区代码,count(监测设备ID) as 二氧化硫设备数量,
	cast(sum(是否达标) as decimal(18,2))/count(是否达标) as 二氧化硫合格率
	from
	(
		select 监测年,季度,省代码,企业代码,监测设备ID,
		case when count(是否达标)-sum(convert(int,是否达标))=0 then 1 else 0 end as 是否达标
		from
		(
			select a.监测年,a.季度,substring(d.行政区代码,1,2)+'0000' as 省代码,a.企业代码,a.监测系统ID,
			a.监测设备ID,a.监测项目编号,a.次数,a.是否达标
			from 业务_废气在线比对_次达标情况 a join V_工业和固废企业_简单 d 
			on a.监测年=d.监测年 and a.企业代码=d.企业代码
			where a.监测系统ID is not null and a.监测设备ID is not null and d.污染源控制级别代码=1
			and a.监测年=@year and a.季度=@quarter and a.监测项目编号='G_2' and a.企业类型<>'2'	
		) a group by 监测年,季度,省代码,企业代码,监测设备ID
	) a group by 监测年,季度,省代码
) d on a.行政区代码=d.行政区代码
left join 
(	--废气氮氧化物
	select 监测年,季度,省代码 as 行政区代码,count(监测设备ID) as 氮氧化物设备数量,
	cast(sum(是否达标) as decimal(18,2))/count(是否达标) as 氮氧化物合格率
	from
	(
		select 监测年,季度,省代码,企业代码,监测设备ID,
		case when count(是否达标)-sum(convert(int,是否达标))=0 then 1 else 0 end as 是否达标
		from
		(
			select a.监测年,a.季度,substring(d.行政区代码,1,2)+'0000' as 省代码,a.企业代码,a.监测系统ID,
			a.监测设备ID,a.监测项目编号,a.次数,a.是否达标
			from 业务_废气在线比对_次达标情况 a join V_工业和固废企业_简单 d 
			on a.监测年=d.监测年 and a.企业代码=d.企业代码
			where a.监测系统ID is not null and a.监测设备ID is not null and d.污染源控制级别代码=1
			and a.监测年=@year and a.季度=@quarter and a.监测项目编号='G_3' and a.企业类型<>'2'	
		) a group by 监测年,季度,省代码,企业代码,监测设备ID
	) a group by 监测年,季度,省代码
) e on a.行政区代码=e.行政区代码
left join
(	--污水处理厂COD
	select 监测年,季度,省代码 as 行政区代码,count(监测设备ID) as COD监测设备数量,
	cast(sum(是否达标) as decimal(18,2))/count(是否达标) as COD合格率
	from
	(
			select 监测年,季度,省代码,企业代码,监测设备ID,
			case when count(是否达标)-sum(convert(int,是否达标))=0 then 1 else 0 end as 是否达标
			from
			(
				select 监测年,季度,省代码,企业代码,监测设备ID,监测项目编号,次数,
				case when count(是否达标)-sum(convert(int,是否达标))=0 then 1 else 0 end as 是否达标
				from
				(
					select a.监测年,a.季度,substring(a.行政区代码,1,2)+'0000' as 省代码,a.企业代码,a.监测设备ID,监测项目编号,次数,a.是否达标 
					from
					(
						select a.监测年,a.季度,b.行政区代码,a.企业代码,a.监测设备ID,监测项目编号,次数,a.是否达标 
						from 业务_废水在线比对 a join 业务_企业基本信息 b on a.监测年=b.监测年 and a.企业代码=b.企业代码
						join 业务_废水排口信息 c on a.监测年=c.监测年 and a.企业类型=c.企业类型 and a.企业代码=c.企业代码
						join V_工业和固废企业_简单 d on a.监测年=d.监测年 and a.企业代码=d.企业代码
						where a.监测系统ID is not null and a.监测设备ID is not null and d.污染源控制级别代码=1
						and a.监测年=@year and a.季度=@quarter and a.监测项目编号='W_11' and a.企业类型='2' 
					) a
				) a group by 监测年,季度,省代码,企业代码,监测设备ID,监测项目编号,次数
			) a group by 监测年,季度,省代码,企业代码,监测设备ID		
	) a group by 监测年,季度,省代码
) f  on a.行政区代码=f.行政区代码
left join 
(	--污水处理厂氨氮
	select 监测年,季度,省代码 as 行政区代码,count(监测设备ID) as 氨氮监测设备数量,
	cast(sum(是否达标) as decimal(18,2))/count(是否达标) as 氨氮合格率
	from
	(
			select 监测年,季度,省代码,企业代码,监测设备ID,
			case when count(是否达标)-sum(convert(int,是否达标))=0 then 1 else 0 end as 是否达标
			from
			(
				select 监测年,季度,省代码,企业代码,监测设备ID,监测项目编号,次数,
				case when count(是否达标)-sum(convert(int,是否达标))=0 then 1 else 0 end as 是否达标
				from
				(
					select a.监测年,a.季度,substring(a.行政区代码,1,2)+'0000' as 省代码,a.企业代码,a.监测设备ID,监测项目编号,次数,a.是否达标 
					from
					(
						select a.监测年,a.季度,b.行政区代码,a.企业代码,a.监测设备ID,监测项目编号,次数,a.是否达标 
						from 业务_废水在线比对 a join 业务_企业基本信息 b on a.监测年=b.监测年 and a.企业代码=b.企业代码
						join 业务_废水排口信息 c on a.监测年=c.监测年 and a.企业类型=c.企业类型 and a.企业代码=c.企业代码
						join V_工业和固废企业_简单 d on a.监测年=d.监测年 and a.企业代码=d.企业代码
						where a.监测系统ID is not null and a.监测设备ID is not null and d.污染源控制级别代码=1
						and a.监测年=@year and a.季度=@quarter and a.监测项目编号='W_60' and a.企业类型='2' 
					) a
				) a group by 监测年,季度,省代码,企业代码,监测设备ID,监测项目编号,次数
			) a group by 监测年,季度,省代码,企业代码,监测设备ID		
	) a group by 监测年,季度,省代码
) g on a.行政区代码=g.行政区代码
end
GO

--------------------------------
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetGasForHangYe]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
drop procedure [dbo].[GetGasForHangYe]
go

CREATE proc [dbo].[GetGasForHangYe]
(
@year varchar(4),
@Quarter varchar(4)
)
as
begin
if object_id('tempdb..#wuranyuan') is not null 
drop table #wuranyuan
create table #wuranyuan (代码名称 nvarchar(100),代码编码 nvarchar(50),年度 int,季度 int,企业数量 int,达标率 float)
insert into  #wuranyuan exec GetGasSourceAccount  1,@year,@Quarter,'','','','0','0','','1','1','1',''

if object_id('tempdb..#wuranyuanLastYear') is not null 
drop table #wuranyuanLastYear
create table #wuranyuanLastYear (代码名称 nvarchar(100),代码编码 nvarchar(50),年度 int,季度 int,企业数量 int,达标率 float)
declare @lastyear varchar(4)
set @lastyear = @year-1
insert into  #wuranyuanLastYear exec GetGasSourceAccount  1,@lastyear,@Quarter,'','','','0','0','','1','1','1',''

if object_id('tempdb..#wuranyuancod') is not null 
drop table #wuranyuancod
create table #wuranyuancod (代码名称 nvarchar(100),代码编码 nvarchar(50),年度 int,季度 int,企业数量 int,达标率 float)
insert into  #wuranyuancod exec GetGasSourceAccount  1,@year,@Quarter,'','','','0','0','G_2','1','1','1',''

if object_id('tempdb..#wuranyuancodLastYear') is not null 
drop table #wuranyuancodLastYear
create table #wuranyuancodLastYear (代码名称 nvarchar(100),代码编码 nvarchar(50),年度 int,季度 int,企业数量 int,达标率 float)
insert into  #wuranyuancodLastYear exec GetGasSourceAccount  1,@lastyear,@Quarter,'','','','0','0','G_2','1','1','1',''

select t0.代码名称 行业,t1.企业数量 本季度监测企业数量, 
t1.达标率 废气本季度,t2.达标率 废气去年同期,t3.达标率 So2本季度,
t4.达标率 So2去年同期
 from 
 (
	select 代码编码,代码名称 from 系统_代码 where 代码类型编码=15 and len(代码编码)=2
 ) t0
 left join #wuranyuan t1 on(t0.代码编码 = t1.代码编码)
 left join #wuranyuanLastYear t2 on(t0.代码编码 = t2.代码编码)
 left join #wuranyuancod t3 on(t0.代码编码 = t3.代码编码)
 left join #wuranyuancodLastYear t4 on(t0.代码编码 = t4.代码编码)
 order by t0.代码编码
end
GO

--------------------------------
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetGasForJianCeXiangMu]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
drop procedure [dbo].[GetGasForJianCeXiangMu]
go

CREATE proc [dbo].[GetGasForJianCeXiangMu]
(
@year varchar(4),
@Quarter varchar(4)
)
as
begin
if object_id('tempdb..#benjidu') is not null 
drop table #benjidu
create table #benjidu(监测项目编号 nvarchar(100),企业数量 int,达标率 float) 
insert #benjidu 
select 监测项目编号,count(企业代码) as 企业数量,avg(污染源达标率) 达标率 
from 
(	/*计算某季度，某企业达标率*/
	select 季度,监测项目编号,企业代码,
	cast(sum(污染源是否达标) as decimal(18,2))/count(污染源是否达标) as 污染源达标率
	from 
	(	/*计算某季度、某次，某企业是否达标*/
		select 季度,次数,监测项目编号,企业代码,
		case (sum(cast(监测点是否达标 as int))-count(监测点是否达标)) when 0 then 1 else 0 end as 污染源是否达标
		from 
		(	/*计算某季度、某次，监测点是否达标*/
			select 季度,次数,监测项目编号,企业代码,监测点代码,
			case (sum(cast(污染物浓度是否达标 as int))-count(污染物浓度是否达标)) when 0 then 1 else 0 end as 监测点是否达标
			from 
			(
				select a.监测年,a.季度,a.次数,a.企业代码,a.监测点代码,a.监测项目编号,
				a.浓度是否达标 as 污染物浓度是否达标,a.污染物浓度 
				from 业务_废气监测数据 a join V_工业和固废企业_简单 b
				on a.监测年=b.监测年 and a.企业类型=b.企业类型 and a.企业代码=b.企业代码
				where a.监测年=@year and a.季度=@Quarter and b.污染源控制级别代码=1 and a.污染物浓度 is not null
			)a group by 季度,次数,监测项目编号,企业代码,监测点代码
		) a group by 季度,次数,监测项目编号,企业代码
	) a group by 季度,监测项目编号,企业代码
) a group by 季度,监测项目编号

if object_id('tempdb..#tongqi') is not null 
drop table #tongqi
create table #tongqi(监测项目编号 nvarchar(100),达标率 float) 
insert #tongqi 
select 监测项目编号,avg(污染源达标率) 达标率 
from 
(	/*计算某季度，某企业达标率*/
	select 季度,监测项目编号,企业代码,
	cast(sum(污染源是否达标) as decimal(18,2))/count(污染源是否达标) as 污染源达标率
	from 
	(	/*计算某季度、某次，某企业是否达标*/
		select 季度,次数,监测项目编号,企业代码,
		case (sum(cast(监测点是否达标 as int))-count(监测点是否达标)) when 0 then 1 else 0 end as 污染源是否达标
		from 
		(	/*计算某季度、某次，监测点是否达标*/
			select 季度,次数,监测项目编号,企业代码,监测点代码,
			case (sum(cast(污染物浓度是否达标 as int))-count(污染物浓度是否达标)) when 0 then 1 else 0 end as 监测点是否达标
			from 
			(
				select a.监测年,a.季度,a.次数,a.企业代码,a.监测点代码,a.监测项目编号,
				a.浓度是否达标 as 污染物浓度是否达标,a.污染物浓度 
				from 业务_废气监测数据 a join V_工业和固废企业_简单 b
				on a.监测年=b.监测年 and a.企业类型=b.企业类型 and a.企业代码=b.企业代码
				where a.监测年=@year-1 and a.季度=@Quarter and b.污染源控制级别代码=1 and a.污染物浓度 is not null
			)a group by 季度,次数,监测项目编号,企业代码,监测点代码
		) a group by 季度,次数,监测项目编号,企业代码
	) a group by 季度,监测项目编号,企业代码
) a group by 季度,监测项目编号

select t0.监测项目名称 as 监测项目,t1.企业数量 as 监测国控企业数,t1.达标率 as 本季度达标率,
t2.达标率 as 去年同期达标率,t3.平均超标倍数
from 
(
	select 监测项目编号,监测项目名称 from dbo.系统_监测项目 where 监测项目类别编号=2
) t0
left join #benjidu t1 on(t0.监测项目编号 = t1.监测项目编号)
left join #tongqi t2 on(t0.监测项目编号 = t2.监测项目编号)
left join
(
	select 监测项目编号,case when 平均超标倍数>10 then cast(cast(Round(平均超标倍数,0) as float) as varchar)
							  when 平均超标倍数>0.1 then cast(cast(Round(平均超标倍数,1) as float) as varchar)
							  when 平均超标倍数>0.01 then cast(cast(Round(平均超标倍数,2) as float) as varchar)
							  else '0' end as 平均超标倍数 from 
	(
	select 监测项目编号,avg(超标倍数) as 平均超标倍数
	from 
	(
		select 监测项目编号,case 超标倍数 when '' then 0 else convert(float,超标倍数) end as 超标倍数
		from
		(
			select a.监测项目编号,dbo.GetOverStarndardNum(a.污染物浓度,a.排放下限,a.排放上限,a.监测项目编号) as 超标倍数
			from 业务_废气监测数据 a
			join V_工业和固废企业_简单 b on a.监测年=b.监测年 and a.企业代码=b.企业代码
			where a.监测年=@year and a.季度=季度 and b.污染源控制级别代码=1
		) as a
	 ) as a where 超标倍数>0
	 group by 监测项目编号
	) as a
) t3 on (t0.监测项目编号=t3.监测项目编号)
order by t0.监测项目编号
end
GO

------------------------------
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetGasForProvince]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
drop procedure [dbo].[GetGasForProvince]
go

CREATE proc [dbo].[GetGasForProvince]
(
@year varchar(4),
@Quarter varchar(20)
)
as
begin
if object_id('tempdb..#wuranyuan') is not null 
drop table #wuranyuan
create table #wuranyuan (代码名称 nvarchar(100),代码编码 nvarchar(50),年度 int,季度 int,企业数量 int,达标率 float)
insert into  #wuranyuan exec GetGasSourceAccount  4,@year,@Quarter,'','','','0','0','','1','1','1',''

if object_id('tempdb..#wuranyuanLastYear') is not null 
drop table #wuranyuanLastYear
create table #wuranyuanLastYear (代码名称 nvarchar(100),代码编码 nvarchar(50),年度 int,季度 int,企业数量 int,达标率 float)
declare @lastyear varchar(4)
set @lastyear = @year-1
insert into  #wuranyuanLastYear exec GetGasSourceAccount 4,@lastyear,@Quarter,'','','','0','0','','1','1','1',''

if object_id('tempdb..#wuranyuancod') is not null 
drop table #wuranyuancod
create table #wuranyuancod (代码名称 nvarchar(100),代码编码 nvarchar(50),年度 int,季度 int,企业数量 int,达标率 float)
insert into  #wuranyuancod exec GetGasSourceAccount 4,@year,@Quarter,'','','','0','0','G_2','1','1','1',''

if object_id('tempdb..#wuranyuancodLastYear') is not null 
drop table #wuranyuancodLastYear
create table #wuranyuancodLastYear (代码名称 nvarchar(100),代码编码 nvarchar(50),年度 int,季度 int,企业数量 int,达标率 float)
insert into  #wuranyuancodLastYear exec GetGasSourceAccount 4,@lastyear,@Quarter,'','','','0','0','G_2','1','1','1',''


if object_id('tempdb..#paikou') is not null 
drop table #paikou
create table #paikou (代码名称 nvarchar(100),代码编码 nvarchar(50),年度 int,季度 int,企业数量 int,监测点数量 int,达标率 float)
insert into  #paikou exec GetEquipAccount  4,@year,@Quarter,'','','','0','0','','1','1','1',''

if object_id('tempdb..#paikoucod') is not null 
drop table #paikoucod
create table #paikoucod (代码名称 nvarchar(100),代码编码 nvarchar(50),年度 int,季度 int,企业数量 int,监测点数量 int,达标率 float)
insert into  #paikoucod exec GetEquipAccount  4,@year,@Quarter,'','','','0','0','G_2','1','1','1',''
 
 
select t0.代码名称 省份,t1.企业数量 本季度监测企业数量,t5.监测点数量 排放口数量, 
t1.达标率 按企业废气本季度,t2.达标率 按企业废气去年同期,t3.达标率 按企业二氧化硫本季度,
t4.达标率 按企业二氧化硫去年同期,t5.达标率 按排口废气本季度,t6.达标率 按排口二氧化硫本季度
 from 
 (
	select 代码编码,代码名称 from 系统_代码 
	where 代码类型编码=14 and substring(代码编码,3,6)='0000' and 代码编码<>'100000'
 ) t0
 left join #wuranyuan t1 on(t0.代码编码 = t1.代码编码)
 left join #wuranyuanLastYear t2 on(t0.代码编码 = t2.代码编码)
 left join #wuranyuancod t3 on(t0.代码编码 = t3.代码编码)
 left join #wuranyuancodLastYear t4 on(t0.代码编码 = t4.代码编码)
 left join #paikou t5 on(t0.代码编码 = t5.代码编码)
 left join #paikoucod t6 on(t0.代码编码 = t6.代码编码)
 order by t0.代码编码
end
GO

------------------------------
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[GetGuFeiChuLi]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[GetGuFeiChuLi]
GO

-- 3.单个企业-固废处理场
--exec GetGuFeiChuLi 2011,1,'13060478704963-2'
create proc [dbo].[GetGuFeiChuLi]
(
@year varchar(4),
@Quarter varchar(20),
@EnterpriseCode varchar(500)
)
as
begin
-- 0-1基本信息
select top 1 [详细名称] as 企业名称,'' as 行业,c.[代码名称] as 行政区,
[行政区代码],[法人代码],[企业代码],b.[代码名称] as 固废类型,d.[代码名称] as 固废处理方式,设计处理量 as 设计处理能力,
(select [监测点名称]+' ' from dbo.业务_废气监测点信息 where 监测年=@year and 业务_废气监测点信息.企业代码=a.企业代码 FOR XML PATH('')) as 废气监测点,
(select [监测点名称]+' ' from dbo.业务_无组织排放信息  where 监测年=@year and 业务_无组织排放信息.企业代码=a.企业代码 FOR XML PATH('')) as 无组织排放监测点,
(select [监测点名称]+' ' from dbo.业务_废水排口信息  where 监测年=@year and 业务_废水排口信息.企业代码=a.企业代码 FOR XML PATH('')) as 废水监测点
from dbo.业务_固废处理厂信息 a
inner join 系统_代码 b on b.代码编码=a.固废类型代码 and b.代码类型编码=23 --固废类型代码
inner join 系统_代码 c on c.代码编码=a.行政区代码 and c.代码类型编码=14 --区域
inner join 系统_代码 d on d.代码编码=a.固废处理方式代码 and d.代码类型编码=22 --固废处理方式
where 监测年=@year and 企业代码=@EnterpriseCode

--7-1手工监测-废水
select (Convert(varchar(10),a.监测年)+'年'+Convert(varchar(10),监测月)+'月'+Convert(varchar(10),监测日))+'日' as 监测日期,
[监测点名称],[进口水量],[废水排放量],b.[代码名称] as 治理设施运行情况,[工况负荷],c.[监测项目名称],[废水处理设施进口浓度],[污染物浓度]  
from dbo.业务_废水监测数据 a 
left join 系统_代码 b on a.[治理设施是否正常运行]=b.代码编码 and b.代码类型编码=28 and a.企业类型=3 
left join 系统_监测项目 c on c.监测项目编号=a.监测项目编号 
left join dbo.业务_固废处理厂信息 d on a.企业代码=d.企业代码 and a.监测年=d.监测年
where d.监测年=@year and 季度=@Quarter and d.企业代码=@EnterpriseCode

--7-2手工监测-废气
select (Convert(varchar(10),a.监测年)+'年'+Convert(varchar(10),监测月)+'月'+Convert(varchar(10),监测日))+'日' as 监测日期,监测时,监测点名称,处理设施前实测废气排放量,
废气排放量,测点温度,含氧量,日生产小时数,b.[代码名称] as 治理设施情况,工况负荷,c.[监测项目名称],处理设施前实测浓度,污染物实测浓度,污染物折算浓度
from dbo.业务_废气监测数据 a 
left join 系统_代码 b on a.[治理设施是否正常运行]=b.代码编码 and b.代码类型编码=28 and a.企业类型=3
left join 系统_监测项目 c on c.监测项目编号=a.监测项目编号 
left join dbo.业务_固废处理厂信息 d on a.企业代码=d.企业代码 and a.监测年=d.监测年
where d.监测年=@year and 季度=@Quarter and d.企业代码=@EnterpriseCode

--7-3手工监测-废气无组织
select (Convert(varchar(10),a.监测年)+'年'+Convert(varchar(10),监测月)+'月'+Convert(varchar(10),监测日))+'日' as 监测日期,监测时,监测点名称,监测项目名称,上风向监测值,下风向1监测值,下风向2监测值,下风向3监测值
from dbo.业务_废气无组织排放监测数据 a 
inner join dbo.业务_固废处理厂信息 d on a.企业代码=d.企业代码 and a.企业类型=3 and a.监测年=d.监测年
where d.监测年=@year and 季度=@Quarter and d.企业代码=@EnterpriseCode

--7-4手工监测-地下水监测
select * from (
select (Convert(varchar(10),a.监测年)+'年'+Convert(varchar(10),监测月)+'月'+Convert(varchar(10),监测日))+'日' as 监测日期,监测点名称,c.[监测项目名称],污染物浓度,
case when 监测月 in (1,2,3) then 1
when 监测月 in (4,5,6) then 2
when 监测月 in (7,8,9) then 3
when 监测月 in (10,11,12) then 4 end 季度
from dbo.业务_固体废物处置厂地下水监测数据 a
inner join 系统_监测项目 c on c.监测项目编号=a.监测项目编号
inner join dbo.业务_固废处理厂信息 d on a.企业代码=d.企业代码 and a.监测年=d.监测年
where d.监测年=@year and d.企业代码=@EnterpriseCode
) as a where 季度=@Quarter

--8-1自动监测-废水
select * from (
select (Convert(varchar(10),a.监测年)+'年'+Convert(varchar(10),监测月)+'月'+Convert(varchar(10),监测日))+'日' as 监测日期,监测点名称,废水排放量,b.[监测项目名称],c.监测设备名称,污染物浓度,
case when 监测月 in (1,2,3) then 1
when 监测月 in (4,5,6) then 2
when 监测月 in (7,8,9) then 3
when 监测月 in (10,11,12) then 4 end 季度
from dbo.业务_在线监测废水数据 a
inner join 系统_监测项目 b on a.监测项目编号=b.监测项目编号 and a.企业类型=3
left join 业务_在线监测系统设备 c on a.监测设备ID=c.Id 
inner join dbo.业务_固废处理厂信息 d on a.企业代码=d.企业代码 and a.监测年=d.监测年
where d.监测年=@year and d.企业代码=@EnterpriseCode
) as a where 季度=@Quarter

--8-2自动监测-废气
select * from (
select (Convert(varchar(10),a.监测年)+'年'+Convert(varchar(10),监测月)+'月'+Convert(varchar(10),监测日))+'日' as 监测日期,监测时,监测点名称,废气排放量,含氧量,b.[监测项目名称],c.[监测设备名称],污染物实测浓度,污染物折算浓度, 
case when 监测月 in (1,2,3) then 1
when 监测月 in (4,5,6) then 2
when 监测月 in (7,8,9) then 3
when 监测月 in (10,11,12) then 4 end 季度
from dbo.业务_在线监测废气数据 a
inner join 系统_监测项目 b on a.监测项目编号=b.监测项目编号 and a.企业类型=3
left join 业务_在线监测系统设备 c on a.监测设备ID=c.Id 
inner join dbo.业务_固废处理厂信息 d on a.企业代码=d.企业代码 and a.监测年=d.监测年
where d.监测年=@year and d.企业代码=@EnterpriseCode
) as a where 季度=@Quarter

--废气监测点达标评价
select c.监测点名称,a.监测年,a.季度,a.次数,a.污染物浓度是否达标,达标率,
dbo.GetOverStandardDesc(1,a.监测年,a.季度,a.次数,a.监测日期,a.企业代码,a.监测点代码,'',2) as 超标说明
from 
(
	select 企业代码,监测点代码,监测年,季度,次数,监测日期,
	case(sum(cast(污染物浓度是否达标 as int))-count(污染物浓度是否达标))
	when 0 then 1 else 0 end as 污染物浓度是否达标,
	sum(cast(污染物浓度是否达标 as decimal(18,2)))/count(污染物浓度是否达标) 达标率
	from 
	(
		select 企业代码,监测点代码,监测年,季度,次数,浓度是否达标 as 污染物浓度是否达标,基准浓度是否达标,
		convert(datetime,convert(varchar,监测年)+'-'+convert(varchar,监测月)+'-'+convert(varchar,监测日)) as 监测日期
		from 业务_废气监测数据  
		where 企业类型=3 
		and (污染物浓度 is not null and (排放上限 is not null or 排放下限 is not null))
		and 监测年=@year and 季度=@Quarter and 企业代码=@EnterpriseCode
	) as aa group by 监测年,季度,次数,企业代码,监测点代码,监测日期
) as a join V_工业和固废企业 b 
on a.企业代码=b.企业代码 and a.监测年=b.监测年 join 业务_废气监测点信息 c 
on a.监测年=c.监测年 and a.企业代码=c.企业代码 and a.监测点代码=c.监测点代码


--废水监测点达标评价
select c.监测点名称,a.监测年,a.季度,a.次数,a.污染物浓度是否达标,达标率,
dbo.GetOverStandardDesc(1,a.监测年,a.季度,a.次数,a.监测日期,a.企业代码,a.监测点代码,'',1) as 超标说明
from 
(
	select 企业代码,监测点代码,监测年,季度,次数,监测日期,
	case(sum(cast(污染物浓度是否达标 as int))-count(污染物浓度是否达标))
	when 0 then 1 else 0 end as 污染物浓度是否达标,
	sum(cast(污染物浓度是否达标 as decimal(18,2)))/count(污染物浓度是否达标) 达标率
	from 
	(
		select 企业代码,监测点代码,监测年,季度,次数,污染物浓度是否达标,
		convert(datetime,convert(varchar,监测年)+'-'+convert(varchar,监测月)+'-'+convert(varchar,监测日)) as 监测日期
		from 业务_废水监测数据  
		where 企业类型=3 
		and (污染物浓度 is not null and (排放上限 is not null or 排放下限 is not null))
		and 监测年=@year and 季度=@Quarter and 企业代码=@EnterpriseCode
	) as aa group by 企业代码,监测点代码,监测年,季度,次数,监测日期
) as a join V_工业和固废企业 b 
on a.企业代码=b.企业代码 and a.监测年=b.监测年 join 业务_废水排口信息 c 
on a.监测年=c.监测年 and a.企业代码=c.企业代码 and a.监测点代码=c.监测点代码 
where c.是否参与评价=1

--废气排放设备达标评价
select c.排污设备名称,a.监测年,a.季度,a.次数,a.污染物浓度是否达标,达标率,
dbo.GetOverStandardDesc(1,a.监测年,a.季度,a.次数,a.监测日期,a.企业代码,a.排污设备代码,'',4) as 超标说明
from 
(
	select 企业代码,排污设备代码,监测年,季度,次数,监测日期,
	case(sum(cast(污染物浓度是否达标 as int))-count(污染物浓度是否达标))
	when 0 then 1 else 0 end as 污染物浓度是否达标,
	sum(cast(污染物浓度是否达标 as decimal(18,2)))/count(污染物浓度是否达标) 达标率
	from 
	(
		select 企业代码,排污设备代码,监测年,季度,次数,浓度是否达标 as 污染物浓度是否达标,
		convert(datetime,convert(varchar,监测年)+'-'+convert(varchar,监测月)+'-'+convert(varchar,监测日)) as 监测日期
		from 业务_废气监测数据  
		where 企业类型=3 
		and (污染物浓度 is not null and (排放上限 is not null or 排放下限 is not null))
		and 监测年=@year and 季度=@Quarter and 企业代码=@EnterpriseCode
	) as aa group by 企业代码,排污设备代码,监测年,季度,次数,监测日期
) as a join V_工业和固废企业 b 
on a.企业代码=b.企业代码 and a.监测年=b.监测年
join 业务_企业废气排放设备 c 
on a.监测年=c.监测年 and a.企业代码=c.企业代码 and a.排污设备代码=c.排污设备代码

--废水污染源达标评价
select a.受纳水体代码,d.代码名称,a.监测年,a.季度,a.次数,a.污染物浓度是否达标,达标率,
dbo.GetOverStandardDesc(1,a.监测年,a.季度,a.次数,a.监测日期,a.企业代码,a.受纳水体代码,'',3) as 超标说明
from 
(
	select 企业代码,受纳水体代码,监测年,季度,次数,监测日期,
	case(sum(cast(污染物浓度是否达标 as int))-count(污染物浓度是否达标))
	when 0 then 1 else 0 end as 污染物浓度是否达标,
	sum(cast(污染物浓度是否达标 as decimal(18,2)))/count(污染物浓度是否达标) 达标率
	from 
	(
		select a.企业代码,a.监测年,a.季度,a.次数,a.污染物浓度是否达标,a.企业类型,a.监测点代码,
		c.受纳水体代码,c.是否参与评价,a.污染物浓度,a.排放上限,a.排放下限,
		convert(datetime,convert(varchar,a.监测年)+'-'+convert(varchar,a.监测月)+'-'+convert(varchar,a.监测日)) as 监测日期
		from 业务_废水监测数据 a join 业务_废水排口信息 c 
		on a.监测点代码=c.监测点代码 and a.企业代码=c.企业代码 and a.监测年=c.监测年 and a.企业类型=c.企业类型
	) as aa 
	where 企业类型=3 
	and (污染物浓度 is not null and (排放上限 is not null or 排放下限 is not null))
	and 是否参与评价=1 and 监测年=@year and 季度=@Quarter and 企业代码=@EnterpriseCode
	group by 企业代码,受纳水体代码,监测年,季度,次数,监测日期
) as a  
inner join 系统_代码 d on 代码类型编码=16 and d.代码编码=a.受纳水体代码

--废气污染源达标评价
select a.监测年,a.季度,a.次数,a.监测日期,
case(sum(cast(监测点是否达标 as int))-count(监测点是否达标)) when 0 then 1 else 0 end as 污染物浓度是否达标,
dbo.GetOverStandardDesc(1,a.监测年,a.季度,a.次数,a.监测日期,a.企业代码,'','',6) as 超标说明,
cast(sum(监测点是否达标) as decimal(18,2))/count(监测点是否达标) as 达标率
from 
(
	select 企业代码,监测点代码,监测年,季度,次数,监测日期,
	case(sum(cast(污染物浓度是否达标 as int))-count(污染物浓度是否达标))
	when 0 then 1 else 0 end as 监测点是否达标,
	sum(cast(污染物浓度是否达标 as decimal(18,2)))/count(污染物浓度是否达标) 达标率
	from 
	(
		select 企业代码,监测点代码,监测年,季度,次数,浓度是否达标 as 污染物浓度是否达标,基准浓度是否达标,企业类型,
		convert(datetime,convert(varchar,监测年)+'-'+convert(varchar,监测月)+'-'+convert(varchar,监测日)) as 监测日期
		from 业务_废气监测数据 
		where 企业类型=3 
		and (污染物浓度 is not null and (排放上限 is not null or 排放下限 is not null))
		and 监测年=@year and 季度=@Quarter and 企业代码=@EnterpriseCode
	) as aa group by 企业代码,监测点代码,监测年,季度,次数,监测日期
) as a join V_工业和固废企业 b 
on a.企业代码=b.企业代码 and a.监测年=b.监测年
group by a.企业代码,a.监测年,a.季度,a.次数,a.监测日期
END


GO
------------------------------
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetJianCeJieGuo]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
drop procedure [dbo].[GetJianCeJieGuo]
go

CREATE proc [dbo].[GetJianCeJieGuo]
(
@year varchar(4),
@reportType int,
@AreaCode varchar(max)
)
as
begin
if @AreaCode != ''
set @AreaCode = ' and 行政区代码 in ('+@AreaCode+')'
declare @select varchar(8000)

if @reportType=1
begin 
--11、COD排放严重超标的国控企业名单及监测结果
--============================================================
set @select ='select bbb.代码名称 as 省份,ccc.代码名称 as 地市,aaa.* from (
select substring(b.行政区代码,1,2)+''0000'' as 省级行政区代码,b.行政区代码,b.详细名称,监测点代码,监测点名称,a.监测年,a.监测月,a.监测日,a.污染物浓度 ,dbo.GetStarndardRange(a.排放下限,a.排放上限) as 标准限值,dbo.GetOverStarndardNum(a.污染物浓度,a.排放下限,a.排放上限,a.监测项目编号) as 超标倍数   from dbo.业务_废水监测数据 as a
inner join dbo.V_工业和固废企业 as b on a.企业代码=b.企业代码 and (b.污染源控制级别代码=''1'' or b.污染源控制级别代码气=''1'')
where 监测项目编号=''W_11'' ) as aaa left join (select * from dbo.系统_代码 where 代码类型编码=''14'') as bbb on aaa.省级行政区代码=bbb.代码编码
left join (select * from dbo.系统_代码 where 代码类型编码=''14'') as ccc on aaa.行政区代码=ccc.代码编码
where 超标倍数>''0.3'' and 监测年='+@year+@AreaCode+' order by 省级行政区代码,行政区代码,监测年 desc,监测月 desc,监测日 desc'
end
if @reportType=2
begin
--12、二氧化硫排放严重超标的国控企业名单及监测结果
--=============================================================
set @select ='select bbb.代码名称 as 省份,ccc.代码名称 as 地市,aaa.* from (
select substring(b.行政区代码,1,2)+''0000'' as 省级行政区代码,b.行政区代码,b.详细名称,监测点代码,监测点名称,a.监测年,a.监测月,a.监测日,a.污染物浓度 as 折算浓度,dbo.GetStarndardRange(a.排放下限,a.排放上限) as 标准限值,dbo.GetOverStarndardNum(a.污染物浓度,a.排放下限,a.排放上限,a.监测项目编号) as 超标倍数   from dbo.业务_废气监测数据 as a
inner join dbo.V_工业和固废企业 as b on a.企业代码=b.企业代码 and (b.污染源控制级别代码=''1'' or b.污染源控制级别代码气=''1'')
where 监测项目编号=''G_2'' ) as aaa left join (select * from dbo.系统_代码 where 代码类型编码=''14'') as bbb on aaa.省级行政区代码=bbb.代码编码
left join (select * from dbo.系统_代码 where 代码类型编码=''14'') as ccc on aaa.行政区代码=ccc.代码编码
where 超标倍数>''0.3'' and 监测年='+@year+@AreaCode+'   order by 省级行政区代码,行政区代码,监测年 desc,监测月 desc,监测日 desc'
end
if @reportType=3
begin
--13、COD排放严重超标的污水处理厂名单及监测结果
--=============================================================
set @select ='select bbb.代码名称 as 省份,ccc.代码名称 as 地市,aaa.* from (
select substring(b.行政区代码,1,2)+''0000'' as 省级行政区代码,b.行政区代码,b.详细名称,a.监测年,a.监测月,a.监测日,a.进口污染物浓度,a.出口污染物浓度,dbo.GetStarndardRange(a.排放下限,a.排放上限) as 标准限值,dbo.GetOverStarndardNum(a.出口污染物浓度,a.排放下限,a.排放上限,a.监测项目编号) as 超标倍数   from dbo.业务_污水处理厂监测数据 as a
inner join dbo.业务_污水处理厂信息 as b on a.企业代码=b.企业代码
where 监测项目编号=''W_11'' ) as aaa left join (select * from dbo.系统_代码 where 代码类型编码=''14'') as bbb on aaa.省级行政区代码=bbb.代码编码
left join (select * from dbo.系统_代码 where 代码类型编码=''14'') as ccc on aaa.行政区代码=ccc.代码编码
where 超标倍数>''0.3'' and 监测年='+@year+@AreaCode+' order by 省级行政区代码,行政区代码,监测年 desc,监测月 desc,监测日 desc'
end
exec (@select)
end
GO

------------------------------
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetNeedUpdateEnterprise]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
drop procedure [dbo].[GetNeedUpdateEnterprise]
go

CREATE PROCEDURE [dbo].[GetNeedUpdateEnterprise]
@Year int,		--监测年
@enterpriseType int		--企业类型
as
begin

if @enterpriseType=1 
begin
select 
行政区,
企业名称,
case when count(distinct 废气监测点代码)>0 then '○' else '√' end as 废气监测点 ,
case when count(distinct 废水监测点代码)>0 then '○' else '√' end as 废水监测点,
case when count(distinct 无组织监测点代码)>0 then '○' else '√' end as 无组织监测点 
from
(
	select aa.行政区,aa.企业名称,bb.废气监测点代码,cc.废水监测点代码,dd.无组织监测点代码 
	from
	(
	select b.省+'/'+c.市 as 行政区,a.行政区代码,a.监测年,a.企业代码,a.企业名称 from 
	(select 监测年,行政区代码,企业代码,详细名称 as 企业名称  from 业务_企业基本信息 where 监测年=@Year) a
	join (select 代码名称 as 省,代码编码 as 省代码 from 系统_代码 where 代码类型编码='14') b on substring(a.行政区代码,1,2)+'0000'=b.省代码
	join (select 代码名称 as 市,代码编码 as 市代码 from 系统_代码 where 代码类型编码='14') c on substring(a.行政区代码,1,4)+'00'=c.市代码
	) aa
	left join 
	(
	select a.行政区代码,a.监测年,a.企业代码,b.监测点代码 as 废气监测点代码 from 
	(select 监测年,行政区代码,企业代码 from 业务_企业基本信息 where 监测年=@Year) a
	join 业务_废气监测点信息 b on a.监测年=b.监测年 and a.企业代码=b.企业代码
	join 业务_企业监测点执行标准 c on b.监测年=c.监测年 and b.企业类型=c.企业类型 and b.企业代码=c.企业代码 and b.监测点代码=c.监测点代码
	join 系统_标准库 d on c.执行标准代码=d.标准代码 where d.废止时间 is not null and datediff(dd,c.结止日期,d.废止时间)<0
	) bb on aa.行政区代码=bb.行政区代码 and aa.监测年=bb.监测年 and aa.企业代码=bb.企业代码
	left join 
	(
	select a.行政区代码,a.监测年,a.企业代码,b.监测点代码 as 废水监测点代码 from 
	(select 监测年,行政区代码,企业代码 from 业务_企业基本信息 where 监测年=@Year) a
	join 业务_废水排口信息 b on a.监测年=b.监测年 and a.企业代码=b.企业代码
	join 业务_企业监测点执行标准 c on b.监测年=c.监测年 and b.企业类型=c.企业类型 and b.企业代码=c.企业代码 and b.企业代码=c.企业代码 and b.监测点代码=c.监测点代码
	join 系统_标准库 d on c.执行标准代码=d.标准代码 where d.废止时间 is not null and datediff(dd,c.结止日期,d.废止时间)<0
	) cc on aa.行政区代码=cc.行政区代码 and aa.监测年=cc.监测年 and aa.企业代码=cc.企业代码
	left join 
	(
	select a.行政区代码,a.监测年,a.企业代码,b.监测点代码 as 无组织监测点代码 from 
	(select 监测年,行政区代码,企业代码 from 业务_企业基本信息 where 监测年=@Year) a
	join 业务_无组织排放信息 b on a.监测年=b.监测年 and a.企业代码=b.企业代码
	join 业务_企业监测点执行标准 c on b.监测年=c.监测年 and b.企业类型=c.企业类型 and b.企业代码=c.企业代码 and b.企业代码=c.企业代码 and b.监测点代码=c.监测点代码
	join 系统_标准库 d on c.执行标准代码=d.标准代码 where d.废止时间 is not null and datediff(dd,c.结止日期,d.废止时间)<0
	) dd on aa.行政区代码=dd.行政区代码 and aa.监测年=dd.监测年 and aa.企业代码=dd.企业代码
	where 废气监测点代码 is not null or 废水监测点代码 is not null or 无组织监测点代码 is not null
) aaa group by 行政区,企业名称

end--enterpriseType=1 end
 
if @enterpriseType=2 
begin
select 
行政区,
企业名称,
case when count(distinct 废水监测点代码)>0 then '○' else '√' end as 废水监测点
from
(
	select aa.行政区,aa.企业名称,bb.废水监测点代码 
	from
	(
	select b.省+'/'+c.市 as 行政区,a.行政区代码,a.监测年,a.企业代码,a.企业名称 from 
	(select 监测年,行政区代码,企业代码,详细名称 as 企业名称  from 业务_污水处理厂信息 where 监测年=2011) a
	join (select 代码名称 as 省,代码编码 as 省代码 from 系统_代码 where 代码类型编码='14') b on substring(a.行政区代码,1,2)+'0000'=b.省代码
	join (select 代码名称 as 市,代码编码 as 市代码 from 系统_代码 where 代码类型编码='14') c on substring(a.行政区代码,1,4)+'00'=c.市代码
	) aa
	left join 
	(
	select a.行政区代码,a.监测年,a.企业代码,b.监测点代码 as 废水监测点代码 from 
	(select 监测年,行政区代码,企业代码 from 业务_污水处理厂信息 where 监测年=2011) a
	join 业务_企业监测点执行标准 b on a.监测年=b.监测年 and b.企业类型='2' and a.企业代码=b.企业代码 and a.企业代码=b.监测点代码
	join 系统_标准库 c on b.执行标准代码=c.标准代码 where c.废止时间 is not null and datediff(dd,b.结止日期,c.废止时间)<0
	) bb on aa.行政区代码=bb.行政区代码 and aa.监测年=bb.监测年 and aa.企业代码=bb.企业代码
	where  废水监测点代码 is not null
) aaa group by 行政区,企业名称
end--enterpriseType=2 end
 
if @enterpriseType=3 
begin
select 
行政区,
企业名称,
case when count(distinct 废气监测点代码)>0 then '○' else '√' end as 废气监测点 ,
case when count(distinct 废水监测点代码)>0 then '○' else '√' end as 废水监测点,
case when count(distinct 无组织监测点代码)>0 then '○' else '√' end as 无组织监测点 
from
(
	select aa.行政区,aa.企业名称,bb.废气监测点代码,cc.废水监测点代码,dd.无组织监测点代码 
	from
	(
	select b.省+'/'+c.市 as 行政区,a.行政区代码,a.监测年,a.企业代码,a.企业名称 from 
	(select 监测年,行政区代码,企业代码,详细名称 as 企业名称  from 业务_固废处理厂信息 where 监测年=@Year) a
	join (select 代码名称 as 省,代码编码 as 省代码 from 系统_代码 where 代码类型编码='14') b on substring(a.行政区代码,1,2)+'0000'=b.省代码
	join (select 代码名称 as 市,代码编码 as 市代码 from 系统_代码 where 代码类型编码='14') c on substring(a.行政区代码,1,4)+'00'=c.市代码
	) aa
	left join 
	(
	select a.行政区代码,a.监测年,a.企业代码,b.监测点代码 as 废气监测点代码 from 
	(select 监测年,行政区代码,企业代码 from 业务_固废处理厂信息 where 监测年=@Year) a
	join 业务_废气监测点信息 b on a.监测年=b.监测年 and a.企业代码=b.企业代码
	join 业务_企业监测点执行标准 c on b.监测年=c.监测年 and b.企业类型=c.企业类型 and b.企业代码=c.企业代码 and b.监测点代码=c.监测点代码
	join 系统_标准库 d on c.执行标准代码=d.标准代码 where d.废止时间 is not null and datediff(dd,c.结止日期,d.废止时间)<0
	) bb on aa.行政区代码=bb.行政区代码 and aa.监测年=bb.监测年 and aa.企业代码=bb.企业代码
	left join 
	(
	select a.行政区代码,a.监测年,a.企业代码,b.监测点代码 as 废水监测点代码 from 
	(select 监测年,行政区代码,企业代码 from 业务_固废处理厂信息 where 监测年=@Year) a
	join 业务_废水排口信息 b on a.监测年=b.监测年 and a.企业代码=b.企业代码
	join 业务_企业监测点执行标准 c on b.监测年=c.监测年 and b.企业类型=c.企业类型 and b.企业代码=c.企业代码 and b.企业代码=c.企业代码 and b.监测点代码=c.监测点代码
	join 系统_标准库 d on c.执行标准代码=d.标准代码 where d.废止时间 is not null and datediff(dd,c.结止日期,d.废止时间)<0
	) cc on aa.行政区代码=cc.行政区代码 and aa.监测年=cc.监测年 and aa.企业代码=cc.企业代码
	left join 
	(
	select a.行政区代码,a.监测年,a.企业代码,b.监测点代码 as 无组织监测点代码 from 
	(select 监测年,行政区代码,企业代码 from 业务_固废处理厂信息 where 监测年=@Year) a
	join 业务_无组织排放信息 b on a.监测年=b.监测年 and a.企业代码=b.企业代码
	join 业务_企业监测点执行标准 c on b.监测年=c.监测年 and b.企业类型=c.企业类型 and b.企业代码=c.企业代码 and b.企业代码=c.企业代码 and b.监测点代码=c.监测点代码
	join 系统_标准库 d on c.执行标准代码=d.标准代码 where d.废止时间 is not null and datediff(dd,c.结止日期,d.废止时间)<0
	) dd on aa.行政区代码=dd.行政区代码 and aa.监测年=dd.监测年 and aa.企业代码=dd.企业代码
	where 废气监测点代码 is not null or 废水监测点代码 is not null or 无组织监测点代码 is not null
) aaa group by 行政区,企业名称

end--enterpriseType=3 end
 
end--存储过程的end
GO

------------------------------
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[GetSingleEnterWuRanYuan]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[GetSingleEnterWuRanYuan]
GO

--单个企业-污染源
--exec GetSingleEnterWuRanYuan 2011,4,'62040222476244-2'
CREATE proc [dbo].[GetSingleEnterWuRanYuan]
(
@year varchar(4),
@Quarter varchar(20),
@enterCode varchar(50)
)
as
begin
-- 0-1基本信息
select top 1 [详细名称] as 企业名称,b.[代码名称] as 行业,c.[代码名称] as 行政区,
[行政区代码],[法人代码],[企业代码],
(select [监测点名称]+' ' from dbo.业务_废气监测点信息 where 监测年=@year  and 业务_废气监测点信息.企业代码=a.企业代码 FOR XML PATH('')) as 废气监测点,
(select [监测点名称]+' ' from dbo.业务_无组织排放信息  where 监测年=@year  and 业务_无组织排放信息.企业代码=a.企业代码 FOR XML PATH('')) as 无组织排放监测点,
(select [监测点名称]+' ' from dbo.业务_废水排口信息  where 监测年=@year  and 业务_废水排口信息.企业代码=a.企业代码 FOR XML PATH('')) as 废水监测点
from dbo.业务_企业基本信息 a
inner join 系统_代码 b on b.代码编码=a.行业代码 and b.代码类型编码=15
inner join 系统_代码 c on c.代码编码=a.行政区代码 and c.代码类型编码=14
where 监测年=@year  and [企业代码]=@enterCode

--1-1手工监测-废水
select (Convert(varchar(10),a.监测年)+'年'+Convert(varchar(10),监测月)+'月'+Convert(varchar(10),监测日))+'日' as 监测日期,
[监测点名称],[进口水量],[废水排放量],b.[代码名称] as 治理设施运行情况,[工况负荷],c.[监测项目名称],[废水处理设施进口浓度],[污染物浓度]  
from dbo.业务_废水监测数据 a 
left join 系统_代码 b on a.[治理设施是否正常运行]=b.代码编码 and b.代码类型编码=28 and a.企业类型=1
left join 系统_监测项目 c on c.监测项目编号=a.监测项目编号 
left join dbo.业务_企业基本信息 d on a.企业代码=d.企业代码 and a.监测年=d.监测年
where d.监测年=@year and 季度=@Quarter and d.[企业代码]=@enterCode


--1-2手工监测-废气
select (Convert(varchar(10),a.监测年)+'年'+Convert(varchar(10),监测月)+'月'+Convert(varchar(10),监测日))+'日' as 监测日期,监测时,监测点名称,处理设施前实测废气排放量,
废气排放量,测点温度,含氧量,日生产小时数,b.[代码名称] as 治理设施情况,工况负荷,c.[监测项目名称],处理设施前实测浓度,污染物实测浓度,污染物折算浓度
from dbo.业务_废气监测数据 a 
left join 系统_代码 b on a.[治理设施是否正常运行]=b.代码编码 and b.代码类型编码=28 and a.企业类型=1
left join 系统_监测项目 c on c.监测项目编号=a.监测项目编号 
left join dbo.业务_企业基本信息 d on a.企业代码=d.企业代码 and a.监测年=d.监测年
where d.监测年=@year and 季度=@Quarter and d.企业代码=@enterCode


--1-3手工监测-废气无组织
select (Convert(varchar(10),a.监测年)+'年'+Convert(varchar(10),监测月)+'月'+Convert(varchar(10),监测日))+'日' as 监测日期,监测时,监测点名称,监测项目名称,上风向监测值,下风向1监测值,下风向2监测值,下风向3监测值
from dbo.业务_废气无组织排放监测数据 a 
inner join dbo.业务_企业基本信息 d on a.企业代码=d.企业代码 and a.企业类型=1 and a.监测年=d.监测年
where d.监测年=@year and 季度=@Quarter and d.企业代码=@enterCode


--1-4手工监测-产品信息水
select Convert(varchar(10),year(填报日期))+'年'+Convert(varchar(10),Month(填报日期))+'月'+Convert(varchar(10),day(填报日期))+'日' as 监测日期,监测点名称,[排水量（t/d）] as 废水排放量,产品名称,[实际产品产量（t/d）] as 产品产量,单位产品基准排水量
from dbo.业务_废水单位产品基本信息 a 
inner join dbo.业务_企业基本信息 d on a.企业代码=d.企业代码 and a.监测年=d.监测年
where d.监测年=@year and 季度=@Quarter and d.企业代码=@enterCode

--1-5手工监测-产品信息气
select Convert(varchar(10),year(填报日期))+'年'+Convert(varchar(10),Month(填报日期))+'月'+Convert(varchar(10),day(填报日期))+'日' as 监测日期,监测点名称,[排气量（m3/d）] as 废气排放量,产品名称,[实际产品产量（t/d）] as 产品产量,单位产品基准排气量 
from dbo.业务_废气单位产品基本信息 a 
inner join dbo.业务_企业基本信息 d on a.企业代码=d.企业代码 and a.监测年=d.监测年
where d.监测年=@year and 季度=@Quarter and d.企业代码=@enterCode

--1-6手工监测-生产情况水
select a.监测年 as 年度,季,废水排口,生产总天数,生产总小时数,平均工况负荷,废水排放量,新鲜用水量 
from dbo.业务_企业季生产情况_废水 a 
inner join dbo.业务_企业基本信息 d on a.企业代码=d.企业代码 and a.监测年=d.监测年
where d.监测年=@year and a.监测年=@year and 季=@Quarter and d.企业代码=@enterCode

--1-7手工监测-生产情况气
select 年,季,废气设备 as 废气排放设备,生产总天数,生产总小时数,平均工况负荷,废气排放量,燃料煤用量,燃料煤平均含硫量,燃料油用量,燃料油平均含硫量,燃料气耗量 
from dbo.业务_企业季生产情况 a 
inner join dbo.业务_企业基本信息 d on a.企业代码=d.企业代码 and a.年=d.监测年
where d.监测年=@year and 季=@Quarter and d.企业代码=@enterCode

--1-8手工监测-煤含硫率
select (Convert(varchar(10),a.监测年)+'年'+Convert(varchar(10),监测月)+'月'+Convert(varchar(10),监测日))+'日' as 监测日期,b.代码名称 as 燃煤种类,煤含硫率,灰份,水份,季度用煤总量 
from dbo.业务_煤含硫率 a 
inner join 系统_代码 b on a.燃煤种类代码=b.代码编码 and b.代码类型编码=36 
inner join dbo.业务_企业基本信息 d on a.企业代码=d.企业代码 and a.监测年=d.监测年
where d.监测年=@year and 季度=@Quarter and d.企业代码=@enterCode

--2-1自动监测-废水
select * from (
select (Convert(varchar(10),a.监测年)+'年'+Convert(varchar(10),监测月)+'月'+Convert(varchar(10),监测日))+'日' as 监测日期,监测点名称,废水排放量,b.[监测项目名称],c.监测设备名称,污染物浓度,
case when 监测月 in (1,2,3) then 1
when 监测月 in (4,5,6) then 2
when 监测月 in (7,8,9) then 3
when 监测月 in (10,11,12) then 4 end 季度
from dbo.业务_在线监测废水数据 a
inner join 系统_监测项目 b on a.监测项目编号=b.监测项目编号 and a.企业类型=1
left join 业务_在线监测系统设备 c on a.监测设备ID=c.Id 
inner join dbo.业务_企业基本信息 d on a.企业代码=d.企业代码 and a.监测年=d.监测年
where d.监测年=@year  and d.企业代码=@enterCode
) as a where 季度=@Quarter

--2-2自动监测-废气
select * from (
select (Convert(varchar(10),a.监测年)+'年'+Convert(varchar(10),监测月)+'月'+Convert(varchar(10),监测日))+'日' as 监测日期,监测时,监测点名称,废气排放量,含氧量,b.[监测项目名称],c.[监测设备名称],污染物实测浓度,污染物折算浓度,
case when 监测月 in (1,2,3) then 1
when 监测月 in (4,5,6) then 2
when 监测月 in (7,8,9) then 3
when 监测月 in (10,11,12) then 4 end 季度
from dbo.业务_在线监测废气数据 a
inner join 系统_监测项目 b on a.监测项目编号=b.监测项目编号 and a.企业类型=1
left join 业务_在线监测系统设备 c on a.监测设备ID=c.Id 
inner join dbo.业务_企业基本信息 d on a.企业代码=d.企业代码 and a.监测年=d.监测年
where d.监测年=@year and d.企业代码=@enterCode
) as a where 季度=@Quarter

--3-1比对监测-废水
select (Convert(varchar(10),a.监测年)+'年'+Convert(varchar(10),监测月)+'月'+Convert(varchar(10),监测日))+'日' as 监测日期,监测时,监测分,监测点名称,b.[监测项目名称],c.[监测设备名称],手工监测数据,自动监测数据
from dbo.业务_废水在线比对 a
inner join 系统_监测项目 b on a.监测项目编号=b.监测项目编号
left join 业务_在线监测系统设备 c on a.监测设备ID=c.Id 
inner join dbo.业务_企业基本信息 d on a.企业代码=d.企业代码 and a.监测年=d.监测年
where d.监测年=@year and 季度=@Quarter and d.企业代码=@enterCode

--3-2比对监测-废气
select (Convert(varchar(10),a.监测年)+'年'+Convert(varchar(10),监测月)+'月'+Convert(varchar(10),监测日))+'日' as 监测日期,监测时,监测分,监测点名称,b.[监测项目名称],c.[监测设备名称],手工监测数据,自动监测数据 
from dbo.业务_废气在线比对 a
inner join 系统_监测项目 b on a.监测项目编号=b.监测项目编号
left join 业务_在线监测系统设备 c on a.监测设备ID=c.Id 
inner join dbo.业务_企业基本信息 d on a.企业代码=d.企业代码 and a.监测年=d.监测年
where d.监测年=@year and 季度=@Quarter and d.企业代码=@enterCode

--废气监测点达标评价
select c.监测点名称,a.监测年,a.季度,a.次数,a.污染物浓度是否达标,达标率,
dbo.GetOverStandardDesc(1,a.监测年,a.季度,a.次数,a.监测日期,a.企业代码,a.监测点代码,'',2) as 超标说明列
from 
(
	select 企业代码,监测点代码,监测年,季度,次数,监测日期,
	case(sum(cast(污染物浓度是否达标 as int))-count(污染物浓度是否达标))
	when 0 then 1 else 0 end as 污染物浓度是否达标,
	sum(cast(污染物浓度是否达标 as decimal(18,2)))/count(污染物浓度是否达标) 达标率
	from 
	(
		select 企业代码,监测点代码,监测年,季度,次数,浓度是否达标 as 污染物浓度是否达标,基准浓度是否达标,
		convert(datetime,convert(varchar,监测年)+'-'+convert(varchar,监测月)+'-'+convert(varchar,监测日)) as 监测日期
		from 业务_废气监测数据  
		where 企业类型=1 
		and (污染物浓度 is not null and (排放上限 is not null or 排放下限 is not null))
		and 监测年=@year and 季度=@Quarter and 企业代码=@enterCode
	) as aa group by 监测年,季度,次数,企业代码,监测点代码,监测日期
) as a join V_工业和固废企业 b 
on a.企业代码=b.企业代码 and a.监测年=b.监测年 join 业务_废气监测点信息 c 
on a.监测年=c.监测年 and a.企业代码=c.企业代码 and a.监测点代码=c.监测点代码


--废水监测点达标评价
select c.监测点名称,a.监测年,a.季度,a.次数,a.污染物浓度是否达标,达标率,
dbo.GetOverStandardDesc(1,a.监测年,a.季度,a.次数,a.监测日期,a.企业代码,a.监测点代码,'',1) as 超标说明列
from 
(
	select 企业代码,监测点代码,监测年,季度,次数,监测日期,
	case(sum(cast(污染物浓度是否达标 as int))-count(污染物浓度是否达标))
	when 0 then 1 else 0 end as 污染物浓度是否达标,
	sum(cast(污染物浓度是否达标 as decimal(18,2)))/count(污染物浓度是否达标) 达标率
	from 
	(
		select 企业代码,监测点代码,监测年,季度,次数,污染物浓度是否达标,
		convert(datetime,convert(varchar,监测年)+'-'+convert(varchar,监测月)+'-'+convert(varchar,监测日)) as 监测日期
		from 业务_废水监测数据  
		where 企业类型=1 
		and (污染物浓度 is not null and (排放上限 is not null or 排放下限 is not null))
		and 监测年=@year and 季度=@Quarter and 企业代码=@enterCode
	) as aa group by 企业代码,监测点代码,监测年,季度,次数,监测日期
) as a join V_工业和固废企业 b 
on a.企业代码=b.企业代码 and a.监测年=b.监测年 join 业务_废水排口信息 c 
on a.监测年=c.监测年 and a.企业代码=c.企业代码 and a.监测点代码=c.监测点代码 
where c.是否参与评价=1

--废气排放设备达标评价
select c.排污设备名称,a.监测年,a.季度,a.次数,a.污染物浓度是否达标,达标率,
dbo.GetOverStandardDesc(1,a.监测年,a.季度,a.次数,a.监测日期,a.企业代码,a.排污设备代码,'',4) as 超标说明列
from 
(
	select 企业代码,排污设备代码,监测年,季度,次数,监测日期,
	case(sum(cast(污染物浓度是否达标 as int))-count(污染物浓度是否达标))
	when 0 then 1 else 0 end as 污染物浓度是否达标,
	sum(cast(污染物浓度是否达标 as decimal(18,2)))/count(污染物浓度是否达标) 达标率
	from 
	(
		select 企业代码,排污设备代码,监测年,季度,次数,浓度是否达标 as 污染物浓度是否达标,
		convert(datetime,convert(varchar,监测年)+'-'+convert(varchar,监测月)+'-'+convert(varchar,监测日)) as 监测日期
		from 业务_废气监测数据  
		where 企业类型=1 
		and (污染物浓度 is not null and (排放上限 is not null or 排放下限 is not null))
		and 监测年=@year and 季度=@Quarter and 企业代码=@enterCode
	) as aa group by 企业代码,排污设备代码,监测年,季度,次数,监测日期
) as a join V_工业和固废企业 b 
on a.企业代码=b.企业代码 and a.监测年=b.监测年
join 业务_企业废气排放设备 c 
on a.监测年=c.监测年 and a.企业代码=c.企业代码 and a.排污设备代码=c.排污设备代码

--废水污染源达标评价
select a.受纳水体代码,d.代码名称,a.监测年,a.季度,a.次数,a.监测日期,a.污染物浓度是否达标,达标率,
dbo.GetOverStandardDesc(1,a.监测年,a.季度,a.次数,a.监测日期,a.企业代码,a.受纳水体代码,'',3) as 超标说明列
from 
(
	select 企业代码,受纳水体代码,监测年,季度,次数,监测日期,
	case(sum(cast(污染物浓度是否达标 as int))-count(污染物浓度是否达标))
	when 0 then 1 else 0 end as 污染物浓度是否达标,
	sum(cast(污染物浓度是否达标 as decimal(18,2)))/count(污染物浓度是否达标) 达标率
	from 
	(
		select a.企业代码,a.监测年,a.季度,a.次数,a.污染物浓度是否达标,a.企业类型,a.监测点代码,
		c.受纳水体代码,c.是否参与评价,a.污染物浓度,a.排放上限,a.排放下限,
		convert(datetime,convert(varchar,a.监测年)+'-'+convert(varchar,a.监测月)+'-'+convert(varchar,a.监测日)) as 监测日期
		from 业务_废水监测数据 a join 业务_废水排口信息 c 
		on a.监测点代码=c.监测点代码 and a.企业代码=c.企业代码 and a.监测年=c.监测年 and a.企业类型=c.企业类型
	) as aa 
	where 企业类型=1 
	and (污染物浓度 is not null and (排放上限 is not null or 排放下限 is not null))
	and 是否参与评价=1 and 监测年=@year and 季度=@Quarter and 企业代码=@enterCode
	group by 企业代码,受纳水体代码,监测年,季度,次数,监测日期
) as a  
inner join 系统_代码 d on 代码类型编码=16 and d.代码编码=a.受纳水体代码

--废气污染源达标评价
select a.监测年,a.季度,a.次数,
case(sum(cast(监测点是否达标 as int))-count(监测点是否达标)) when 0 then 1 else 0 end as 污染物浓度是否达标,
dbo.GetOverStandardDesc(1,a.监测年,a.季度,a.次数,a.监测日期,a.企业代码,'','',6) as 超标说明列,
cast(sum(监测点是否达标) as decimal(18,2))/count(监测点是否达标) as 达标率
from 
(
	select 企业代码,监测点代码,监测年,季度,次数,监测日期,
	case(sum(cast(污染物浓度是否达标 as int))-count(污染物浓度是否达标))
	when 0 then 1 else 0 end as 监测点是否达标,
	sum(cast(污染物浓度是否达标 as decimal(18,2)))/count(污染物浓度是否达标) 达标率
	from 
	(
		select 企业代码,监测点代码,监测年,季度,次数,浓度是否达标 as 污染物浓度是否达标,基准浓度是否达标,企业类型,
		convert(datetime,convert(varchar,监测年)+'-'+convert(varchar,监测月)+'-'+convert(varchar,监测日)) as 监测日期
		from 业务_废气监测数据 
		where 企业类型=1 
		and (污染物浓度 is not null and (排放上限 is not null or 排放下限 is not null))
		and 监测年=@year and 季度=@Quarter and 企业代码=@enterCode
	) as aa group by 企业代码,监测点代码,监测年,季度,次数,监测日期
) as a join V_工业和固废企业 b 
on a.企业代码=b.企业代码 and a.监测年=b.监测年
group by a.企业代码,a.监测年,a.季度,a.次数,a.监测日期
end

GO
------------------------------
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetSingleEnterWuShuiChuLi]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
drop procedure [dbo].[GetSingleEnterWuShuiChuLi]
go

CREATE proc [dbo].[GetSingleEnterWuShuiChuLi]
(
@year varchar(4),
@Quarter varchar(20),
@enterCode varchar(50)
)
as
begin
-- 0-1基本信息
select top 1 [详细名称] as 企业名称,'污水处理' as 行业,c.[代码名称] as 行政区,
[行政区代码],[法人代码],[企业代码],污水处理级别,b.[代码名称] as 受纳水体,设计处理能力
from dbo.业务_污水处理厂信息 a 
inner join 系统_代码 b on b.代码编码=a.受纳水体代码
inner join 系统_代码 c on c.代码编码=a.行政区代码 and c.代码类型编码=14
where 监测年=@year and 企业代码=@enterCode

--4-1手工监测-监测数据
select (Convert(varchar(10),a.监测年)+'年'+Convert(varchar(10),监测月)+'月'+Convert(varchar(10),监测日))+'日' as 监测日期,b.监测项目名称,进口污染物浓度,进口水量,进口污染物量,出口污染物浓度,出口水量,出口污染物排放量,出口在线监测浓度,出口在线监测排放量
from dbo.业务_污水处理厂监测数据 a 
inner join 系统_监测项目 b on a.监测项目编号=b.监测项目编号 and a.季度=@Quarter
inner join 业务_污水处理厂信息 c on a.企业代码=c.企业代码 and a.监测年=c.监测年
where c.监测年=@year and c.企业代码=@enterCode 

--4-2手工监测-月累计水量
select a.监测年,监测月,进水量,排水量 from dbo.业务_污水处理厂月水量 a
inner join 业务_污水处理厂信息 b on a.企业代码=b.企业代码 and a.监测年=b.监测年
where b.监测年=@year and b.企业代码=@enterCode

--5-1自动监测-自动监测数据
select  (Convert(varchar(10),a.监测年)+'年'+Convert(varchar(10),监测月)+'月'+Convert(varchar(10),监测日))+'日' as 监测日期,b.监测项目名称,c.监测设备名称,污染物浓度,废水排放量
from 业务_在线监测废水数据 a 
inner join 系统_监测项目 b on a.监测项目编号=b.监测项目编号 and a.企业类型=2
inner join dbo.业务_在线监测系统设备 c on a.监测设备ID=c.ID
inner join 业务_污水处理厂信息 d on a.企业代码=d.企业代码 and a.监测年=d.监测年
where d.监测年=@year and d.企业代码=@enterCode

--6-1比对废水监测数据-自动监测设备比对数据 
select convert(datetime,convert(varchar,a.监测年)+'-'+convert(varchar,a.监测月)+'-'+convert(varchar,a.监测日)) as 监测日期,
a.监测时,a.监测分,a.监测点名称,b.监测设备名称,a.手工监测数据,a.自动监测数据
from 业务_废水在线比对 a join 业务_在线监测系统设备 b on a.监测设备ID=b.id
where a.监测年=@year and a.企业代码=@enterCode

--达标评价
select d.代码名称 as 受纳水体,a.监测年,a.季度,a.次数,a.污染物浓度是否达标,'' 超标说明,a.达标率  from 
(
 select 受纳水体代码,监测年,季度,次数,
 case(sum(cast(污染物浓度是否达标 as int))-count(污染物浓度是否达标))
 when 0 then 1 else 0 end as 污染物浓度是否达标,
 sum(cast(污染物浓度是否达标 as decimal(18,2)))/count(污染物浓度是否达标) 达标率
 from 
 (
  select a.监测年,a.季度,a.次数,a.出口污染物浓度 as 污染物浓度,
  a.浓度是否达标 as 污染物浓度是否达标,b.受纳水体代码
  from 业务_污水处理厂监测数据 a join 业务_污水处理厂信息 b
  on a.企业代码=b.企业代码 and a.监测年=b.监测年
  where a.监测年=@year and 季度=@Quarter and a.企业代码=@enterCode
  
 ) as aa group by 受纳水体代码,监测年,季度,次数
) a
join (select 代码编码,代码名称 from dbo.系统_代码 where 代码类型编码=16) d 
on a.受纳水体代码=d.代码编码 

END
GO

------------------------------
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetWhaterForHangYe]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
drop procedure [dbo].[GetWhaterForHangYe]
go

CREATE proc [dbo].[GetWhaterForHangYe]
(
@year varchar(4),
@Quarter varchar(4)
)
as
begin
if object_id('tempdb..#wuranyuan') is not null 
drop table #wuranyuan
create table #wuranyuan (代码名称 nvarchar(100),代码编码 nvarchar(50),年度 int,季度 int,企业数量 int,达标率 float)
insert into  #wuranyuan exec [GetWhaterSourceAccount] 1,@year,@Quarter,'','','','0','0','','1','1','1',''

if object_id('tempdb..#wuranyuanLastYear') is not null 
drop table #wuranyuanLastYear
create table #wuranyuanLastYear (代码名称 nvarchar(100),代码编码 nvarchar(50),年度 int,季度 int,企业数量 int,达标率 float)
declare @lastyear varchar(4)
set @lastyear = @year-1
insert into  #wuranyuanLastYear exec [GetWhaterSourceAccount] 1,@lastyear,@Quarter,'','','','0','0','','1','1','1',''

if object_id('tempdb..#wuranyuancod') is not null 
drop table #wuranyuancod
create table #wuranyuancod (代码名称 nvarchar(100),代码编码 nvarchar(50),年度 int,季度 int,企业数量 int,达标率 float)
insert into  #wuranyuancod exec [GetWhaterSourceAccount] 1,@year,@Quarter,'','','','0','0','W_11','1','1','1',''

if object_id('tempdb..#wuranyuancodLastYear') is not null 
drop table #wuranyuancodLastYear
create table #wuranyuancodLastYear (代码名称 nvarchar(100),代码编码 nvarchar(50),年度 int,季度 int,企业数量 int,达标率 float)
insert into  #wuranyuancodLastYear exec [GetWhaterSourceAccount] 1,@lastyear,@Quarter,'','','','0','0','W_11','1','1','1',''

select t0.代码名称 行业,t1.企业数量 本季度监测企业数量, 
t1.达标率 废水本季度,t2.达标率 废水去年同期,t3.达标率 cod本季度,
t4.达标率 cod去年同期
 from 
 (select 代码编码,代码名称 from 系统_代码 where 代码类型编码=15 and len(代码编码)=2) t0
 left join #wuranyuan t1 on(t0.代码编码 = t1.代码编码)
 left join #wuranyuanLastYear t2 on(t0.代码编码 = t2.代码编码)
 left join #wuranyuancod t3 on(t0.代码编码 = t3.代码编码)
 left join #wuranyuancodLastYear t4 on(t0.代码编码 = t4.代码编码)
 order by t0.代码编码
end
GO

------------------------------
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetWhaterForJianCeXiangMu]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
drop procedure [dbo].[GetWhaterForJianCeXiangMu]
go

CREATE proc [dbo].[GetWhaterForJianCeXiangMu]
(
@year varchar(4),
@Quarter varchar(4)
)
as
begin
--if object_id('tempdb..#benjidu') is not null 
--drop table #benjidu
--create table #benjidu(监测项目编号 nvarchar(100),监测项目名称 nvarchar(100),企业数量 int,达标率 float) 
declare @benjidu table(监测项目编号 nvarchar(100),企业数量 int,达标率 float) 
insert @benjidu 
select 监测项目编号,count(企业代码) as 企业数量,avg(污染源达标率) 达标率 
	from 
	(	/*计算某季度，某企业达标率*/
		select 季度,监测项目编号,企业代码,
		cast(sum(污染源是否达标) as decimal(18,2))/count(污染源是否达标) as 污染源达标率
		from 
		(	/*计算某季度、某次，某企业是否达标*/
			select 季度,次数,监测项目编号,企业代码,
			case (sum(cast(监测点是否达标 as int))-count(监测点是否达标)) when 0 then 1 else 0 end as 污染源是否达标
			from 
			(	/*计算某季度、某次，监测点是否达标*/
				select 季度,次数,监测项目编号,企业代码,监测点代码,
				case (sum(cast(污染物浓度是否达标 as int))-count(污染物浓度是否达标)) when 0 then 1 else 0 end as 监测点是否达标
				from 
				(
					select a.监测年,a.季度,a.次数,a.企业代码,a.监测点代码,a.监测项目编号,
					a.污染物浓度是否达标,a.污染物浓度 
					from 业务_废水监测数据 a join V_工业和固废企业_简单 b 
					on a.监测年=b.监测年 and a.企业代码=b.企业代码
					join 业务_废水排口信息 c
					on a.监测年=c.监测年 and a.企业代码=c.企业代码 and a.监测点代码=c.监测点代码 
					where a.监测年=@year and a.季度=@Quarter and b.污染源控制级别代码=1 
					and a.污染物浓度 is not null and c.是否参与评价=1
				)a 
				group by 季度,次数,监测项目编号,企业代码,监测点代码
			) a group by 季度,次数,监测项目编号,企业代码
		) a group by 季度,监测项目编号,企业代码
	) a group by 季度,监测项目编号

--if object_id('tempdb..#tongqi') is not null 
--drop table #tongqi
--create table #tongqi(监测项目编号 nvarchar(100),达标率 float) 
declare @tongqi table(监测项目编号 nvarchar(100),达标率 float) 
insert @tongqi 
select 监测项目编号,avg(污染源达标率) 达标率 
	from 
	(	/*计算某季度，某企业达标率*/
		select 季度,监测项目编号,企业代码,
		cast(sum(污染源是否达标) as decimal(18,2))/count(污染源是否达标) as 污染源达标率
		from 
		(	/*计算某季度、某次，某企业是否达标*/
			select 季度,次数,监测项目编号,企业代码,
			case (sum(cast(监测点是否达标 as int))-count(监测点是否达标)) when 0 then 1 else 0 end as 污染源是否达标
			from 
			(	/*计算某季度、某次，监测点是否达标*/
				select 季度,次数,监测项目编号,企业代码,监测点代码,
				case (sum(cast(污染物浓度是否达标 as int))-count(污染物浓度是否达标)) when 0 then 1 else 0 end as 监测点是否达标
				from 
				(
					select a.监测年,a.季度,a.次数,a.企业代码,a.监测点代码,a.监测项目编号,
					a.污染物浓度是否达标,a.污染物浓度 
					from 业务_废水监测数据 a join V_工业和固废企业_简单 b 
					on a.监测年=b.监测年 and a.企业代码=b.企业代码
					join 业务_废水排口信息 c
					on a.监测年=c.监测年 and a.企业代码=c.企业代码 and a.监测点代码=c.监测点代码 
					where a.监测年=@year-1 and a.季度=@Quarter and b.污染源控制级别代码=1 
					and a.污染物浓度 is not null and c.是否参与评价=1
				)a 
				group by 季度,次数,监测项目编号,企业代码,监测点代码
			) a group by 季度,次数,监测项目编号,企业代码
		) a group by 季度,监测项目编号,企业代码
	) a group by 季度,监测项目编号

select t0.监测项目名称 as 监测项目,t1.企业数量 as 国控企业数,t1.达标率 as 本季度达标率,
t2.达标率 as 去年同期达标率,t3.平均超标倍数
from 
(
	select 监测项目编号,监测项目名称 from dbo.系统_监测项目 where 监测项目类别编号=1
) t0
left join @benjidu t1 on(t0.监测项目编号 = t1.监测项目编号)
left join @tongqi t2 on(t0.监测项目编号 = t2.监测项目编号)
left join
(
	select 监测项目编号,case when 平均超标倍数>10 then cast(cast(Round(平均超标倍数,0) as float) as varchar)
							  when 平均超标倍数>0.1 then cast(cast(Round(平均超标倍数,1) as float) as varchar)
							  when 平均超标倍数>0.01 then cast(cast(Round(平均超标倍数,2) as float) as varchar)
							  else '0' end as 平均超标倍数 from 
	(
	select 监测项目编号,avg(超标倍数) as 平均超标倍数
	from 
	(
		select 监测项目编号,case 超标倍数 when '' then 0 else convert(float,超标倍数) end as 超标倍数
		from
		(
			select a.监测项目编号,dbo.GetOverStarndardNum(a.污染物浓度,a.排放下限,a.排放上限,a.监测项目编号) as 超标倍数
			from 业务_废水监测数据 a
			join V_工业和固废企业_简单 b on a.监测年=b.监测年 and a.企业代码=b.企业代码
			where a.监测年=@year and a.季度=季度 and b.污染源控制级别代码=1
		) as a
	 ) as a where 超标倍数>0
	 group by 监测项目编号
	) as a
) t3 on (t0.监测项目编号=t3.监测项目编号)
order by t0.监测项目编号
end 
GO

------------------------------
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetWhaterForLiuYu]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
drop procedure [dbo].[GetWhaterForLiuYu]
go

CREATE proc [dbo].[GetWhaterForLiuYu]
(
@year varchar(4),
@Quarter varchar(4)
)
as
begin
if object_id('tempdb..#wuranyuan') is not null 
drop table #wuranyuan
create table #wuranyuan (代码名称 nvarchar(100),代码编码 nvarchar(50),年度 int,季度 int,企业数量 int,达标率 float)
insert into  #wuranyuan exec [GetWhaterSourceAccount] 5,@year,@Quarter,'','','','0','0','','1','1','1',''

if object_id('tempdb..#wuranyuanLastYear') is not null 
drop table #wuranyuanLastYear
create table #wuranyuanLastYear (代码名称 nvarchar(100),代码编码 nvarchar(50),年度 int,季度 int,企业数量 int,达标率 float)
declare @lastyear varchar(4)
set @lastyear = @year-1
insert into  #wuranyuanLastYear exec [GetWhaterSourceAccount] 5,@lastyear,@Quarter,'','','','0','0','','1','1','1',''

if object_id('tempdb..#wuranyuancod') is not null 
drop table #wuranyuancod
create table #wuranyuancod (代码名称 nvarchar(100),代码编码 nvarchar(50),年度 int,季度 int,企业数量 int,达标率 float)
insert into  #wuranyuancod exec [GetWhaterSourceAccount] 5,@year,@Quarter,'','','','0','0','W_11','1','1','1',''

if object_id('tempdb..#wuranyuancodLastYear') is not null 
drop table #wuranyuancodLastYear
create table #wuranyuancodLastYear (代码名称 nvarchar(100),代码编码 nvarchar(50),年度 int,季度 int,企业数量 int,达标率 float)
insert into  #wuranyuancodLastYear exec [GetWhaterSourceAccount] 5,@lastyear,@Quarter,'','','','0','0','W_11','1','1','1',''


select t0.代码名称 流域,t1.企业数量 本季度监测企业数量, 
t1.达标率 废水本季度,t2.达标率 废水去年同期,t3.达标率 cod本季度,
t4.达标率 cod去年同期
from 
(
	select 代码编码,代码名称 from 系统_代码 
	where 代码类型编码=20 and (substring(代码编码,3,8)='00000000' or len(代码编码)=1)
) t0
left join #wuranyuan t1 on(t0.代码编码 = t1.代码编码)
left join #wuranyuanLastYear t2 on(t0.代码编码 = t2.代码编码)
left join #wuranyuancod t3 on(t0.代码编码 = t3.代码编码)
left join #wuranyuancodLastYear t4 on(t0.代码编码 = t4.代码编码)
order by t0.代码编码
end

GO

------------------------------
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetWhaterForProvince]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
drop procedure [dbo].[GetWhaterForProvince]
go

CREATE proc [dbo].[GetWhaterForProvince]
(
@year varchar(4),
@Quarter varchar(4)
)
as
begin
if object_id('tempdb..#wuranyuan') is not null 
drop table #wuranyuan
create table #wuranyuan (代码名称 nvarchar(100),代码编码 nvarchar(50),年度 int,季度 int,企业数量 int,达标率 float)
insert into  #wuranyuan exec [GetWhaterSourceAccount] 4,@year,@Quarter,'','','','0','0','','1','1','1',''

if object_id('tempdb..#wuranyuanLastYear') is not null 
drop table #wuranyuanLastYear
create table #wuranyuanLastYear (代码名称 nvarchar(100),代码编码 nvarchar(50),年度 int,季度 int,企业数量 int,达标率 float)
declare @lastyear varchar(4)
set @lastyear = @year-1
insert into  #wuranyuanLastYear exec [GetWhaterSourceAccount] 4,@lastyear,@Quarter,'','','','0','0','','1','1','1',''

if object_id('tempdb..#wuranyuancod') is not null 
drop table #wuranyuancod
create table #wuranyuancod (代码名称 nvarchar(100),代码编码 nvarchar(50),年度 int,季度 int,企业数量 int,达标率 float)
insert into  #wuranyuancod exec [GetWhaterSourceAccount] 4,@year,@Quarter,'','','','0','0','W_11','1','1','1',''

if object_id('tempdb..#wuranyuancodLastYear') is not null 
drop table #wuranyuancodLastYear
create table #wuranyuancodLastYear (代码名称 nvarchar(100),代码编码 nvarchar(50),年度 int,季度 int,企业数量 int,达标率 float)
insert into  #wuranyuancodLastYear exec [GetWhaterSourceAccount] 4,@lastyear,@Quarter,'','','','0','0','W_11','1','1','1',''


if object_id('tempdb..#paikou') is not null 
drop table #paikou
create table #paikou (代码名称 nvarchar(100),代码编码 nvarchar(50),年度 int,季度 int,企业数量 int,监测点数量 int,达标率 float)
insert into  #paikou exec [GetletAccount] 4,@year,@Quarter,'','','','0','0','','1','1','1',''

if object_id('tempdb..#paikoucod') is not null 
drop table #paikoucod
create table #paikoucod (代码名称 nvarchar(100),代码编码 nvarchar(50),年度 int,季度 int,企业数量 int,监测点数量 int,达标率 float)
insert into  #paikoucod exec [GetletAccount] 4,@year,@Quarter,'','','','0','0','W_11','1','1','1',''
 
 
select t0.代码名称 地区,t1.企业数量 本季度监测企业数量,t5.监测点数量 排放口数量, 
t1.达标率 按企业废水本季度,t2.达标率 按企业废水去年同期,t3.达标率 按企业cod本季度,
t4.达标率 按企业cod去年同期,t5.达标率 按排口废水本季度,t6.达标率 按排口cod本季度
 from 
 (
	 select 代码编码,代码名称 from 系统_代码 
	 where 代码类型编码=14 and substring(代码编码,3,6)='0000' and 代码编码<>'100000'
 ) t0
 left join #wuranyuan t1 on(t0.代码编码 = t1.代码编码)
 left join #wuranyuanLastYear t2 on(t0.代码编码 = t2.代码编码)
 left join #wuranyuancod t3 on(t0.代码编码 = t3.代码编码)
 left join #wuranyuancodLastYear t4 on(t0.代码编码 = t4.代码编码)
 left join #paikou t5 on(t0.代码编码 = t5.代码编码)
 left join #paikoucod t6 on(t0.代码编码 = t6.代码编码)
 order by t0.代码编码
end
GO

------------------------------
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[GetWuRanYuanHeGuFei]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[GetWuRanYuanHeGuFei]
GO

CREATE proc [dbo].[GetWuRanYuanHeGuFei]
(
@year varchar(4),
@Quarter varchar(20),
@HangYeLeiXing varchar(max),
@XingZhengQuCode varchar(max)
)
as
begin
declare @select varchar(max)

if @HangYeLeiXing!=''
begin
	set @HangYeLeiXing =' and 行业代码 in ('+@HangYeLeiXing+')'
end
if @XingZhengQuCode!=''
begin
	set @XingZhengQuCode =' and b.行政区代码 in ('+@XingZhengQuCode+') '
end

--废气监测点达标评价
set @select ='select b.详细名称 as 企业名称,a.企业代码,b.行政区,行业,c.监测点名称,a.监测点代码,
a.监测年,a.季度,a.次数,a.污染物浓度是否达标,
dbo.GetOverStandardDesc(1,a.监测年,a.季度,a.次数,a.监测日期,a.企业代码,a.监测点代码,'''',2) as 超标说明列
from 
(
	select 企业代码,监测点代码,监测年,季度,次数,监测日期,
	case(sum(cast(污染物浓度是否达标 as int))-count(污染物浓度是否达标))
	when 0 then 1 else 0 end as 污染物浓度是否达标
	from 
	(
		select 企业代码,监测点代码,监测年,季度,次数,浓度是否达标 as 污染物浓度是否达标,基准浓度是否达标,
		convert(datetime,convert(varchar,监测年)+''-''+convert(varchar,监测月)+''-''+convert(varchar,监测日)) as 监测日期
		from 业务_废气监测数据  
		where 污染物浓度 is not null and 监测年='+@year+' and 季度='+@Quarter+' --and 企业代码=@EnterpriseName
	) as aa group by 监测年,季度,次数,企业代码,监测点代码,监测日期
) as a join V_工业和固废企业 b 
on a.企业代码=b.企业代码 and a.监测年=b.监测年 join 业务_废气监测点信息 c 
on a.监测年=c.监测年 and a.企业代码=c.企业代码 and a.监测点代码=c.监测点代码
where 1=1 '+@HangYeLeiXing+@XingZhengQuCode+'

--废水监测点达标评价
select b.详细名称 as 企业名称,a.企业代码,b.行政区,行业,c.监测点名称,a.监测点代码,
a.监测年,a.季度,a.次数,a.污染物浓度是否达标,
dbo.GetOverStandardDesc(1,a.监测年,a.季度,a.次数,a.监测日期,a.企业代码,a.监测点代码,'''',1) as 超标说明列
from 
(
	select 企业代码,监测点代码,监测年,季度,次数,监测日期,
	case(sum(cast(污染物浓度是否达标 as int))-count(污染物浓度是否达标))
	when 0 then 1 else 0 end as 污染物浓度是否达标
	from 
	(
		select 企业代码,监测点代码,监测年,季度,次数,污染物浓度是否达标,
		convert(datetime,convert(varchar,监测年)+''-''+convert(varchar,监测月)+''-''+convert(varchar,监测日)) as 监测日期
		from 业务_废水监测数据  
		where 污染物浓度 is not null and 监测年='+@year+' and 季度='+@Quarter+'  --and 企业代码=@EnterpriseName
	) as aa group by 企业代码,监测点代码,监测年,季度,次数,监测日期
) as a join V_工业和固废企业 b 
on a.企业代码=b.企业代码 and a.监测年=b.监测年 join 业务_废水排口信息 c 
on a.监测年=c.监测年 and a.企业代码=c.企业代码 and a.监测点代码=c.监测点代码 
where c.是否参与评价=1 '+@HangYeLeiXing+@XingZhengQuCode+'

--废气排放设备达标评价
select b.详细名称 as 企业名称,a.企业代码,b.行政区,行业,c.排污设备名称,a.排污设备代码,
a.监测年,a.季度,a.次数,a.污染物浓度是否达标,
dbo.GetOverStandardDesc(1,a.监测年,a.季度,a.次数,a.监测日期,a.企业代码,a.排污设备代码,'''',4) as 超标说明列
from 
(
	select 企业代码,排污设备代码,监测年,季度,次数,监测日期,
	case(sum(cast(污染物浓度是否达标 as int))-count(污染物浓度是否达标))
	when 0 then 1 else 0 end as 污染物浓度是否达标
	from 
	(
		select 企业代码,排污设备代码,监测年,季度,次数,浓度是否达标 as 污染物浓度是否达标,
		convert(datetime,convert(varchar,监测年)+''-''+convert(varchar,监测月)+''-''+convert(varchar,监测日)) as 监测日期
		from 业务_废气监测数据  
		where 污染物浓度 is not null and 监测年=2011 and 季度=1 --and 企业代码=@EnterpriseName
	) as aa group by 企业代码,排污设备代码,监测年,季度,次数,监测日期
) as a join V_工业和固废企业 b 
on a.企业代码=b.企业代码 and a.监测年=b.监测年
join 业务_企业废气排放设备 c 
on a.监测年=c.监测年 and a.企业代码=c.企业代码 and a.排污设备代码=c.排污设备代码 
where 1=1 '+@HangYeLeiXing+@XingZhengQuCode+'

--废水污染源达标评价
select b.详细名称 as 企业名称,a.企业代码,b.行政区,行业,a.受纳水体代码,d.代码名称 as 受纳水体,
a.监测年,a.季度,a.次数,a.污染物浓度是否达标,
dbo.GetOverStandardDesc(1,a.监测年,a.季度,a.次数,a.监测日期,a.企业代码,a.受纳水体代码,'''',3) as 超标说明列
from 
(
	select 企业代码,受纳水体代码,监测年,季度,次数,监测日期,
	case(sum(cast(污染物浓度是否达标 as int))-count(污染物浓度是否达标))
	when 0 then 1 else 0 end as 污染物浓度是否达标
	from 
	(
		select a.企业代码,a.监测年,a.季度,a.次数,a.污染物浓度是否达标,a.企业类型,a.监测点代码,
		c.受纳水体代码,c.是否参与评价,a.污染物浓度,
		convert(datetime,convert(varchar,a.监测年)+''-''+convert(varchar,a.监测月)+''-''+convert(varchar,a.监测日)) as 监测日期
		from 业务_废水监测数据 a join 业务_废水排口信息 c 
		on a.监测点代码=c.监测点代码 and a.企业代码=c.企业代码 and a.监测年=c.监测年 and a.企业类型=c.企业类型
	) as aa 
	where 污染物浓度 is not null and 是否参与评价=1 and 监测年=2011 and 季度=1 --and 企业代码=@EnterpriseName
	group by 企业代码,受纳水体代码,监测年,季度,次数,监测日期
) as a join V_工业和固废企业 b 
on a.企业代码=b.企业代码 and a.监测年=b.监测年
inner join 系统_代码 d on 代码类型编码=16 and d.代码编码=a.受纳水体代码 
where 1=1 '+@HangYeLeiXing+@XingZhengQuCode+'

--废气污染源达标评价
select b.详细名称 as 企业名称,a.企业代码,b.行政区,行业,a.监测年,a.季度,a.次数,a.污染物浓度是否达标,
dbo.GetOverStandardDesc(1,a.监测年,a.季度,a.次数,a.监测日期,a.企业代码,a.企业代码,'''',4) as 超标说明列
from 
(
	select 企业代码,监测年,季度,次数,监测日期,
	case(sum(cast(污染物浓度是否达标 as int))-count(污染物浓度是否达标))
	when 0 then 1 else 0 end as 污染物浓度是否达标
	from 
	(
		select 企业代码,监测点代码,监测年,季度,次数,浓度是否达标 as 污染物浓度是否达标,基准浓度是否达标,企业类型,
		convert(datetime,convert(varchar,监测年)+''-''+convert(varchar,监测月)+''-''+convert(varchar,监测日)) as 监测日期
		from 业务_废气监测数据 
		where 污染物浓度 is not null and 监测年='+@year+' and 季度='+@Quarter+' --and 企业代码=@EnterpriseName
	) as a group by 企业代码,监测年,季度,次数,监测日期
) as a join V_工业和固废企业 b 
on a.企业代码=b.企业代码 and a.监测年=b.监测年
where 1=1  '+@HangYeLeiXing+@XingZhengQuCode
exec (@select)
END

GO

------------------------------
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[GetWuRanYuanHeGuFeiAccount]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[GetWuRanYuanHeGuFeiAccount]
GO

-- 4.评价表-污染源、固废达标率
-- exec [GetWuRanYuanHeGuFeiAccount] 2011,1,'',''
CREATE proc [dbo].[GetWuRanYuanHeGuFeiAccount]
(
@year varchar(4),
@Quarter varchar(20),
@HangYeLeiXing varchar(max),
@XingZhengQuCode varchar(max)
)
as
begin
declare @select varchar(max)

if @HangYeLeiXing!=''
begin
	set @HangYeLeiXing =' and 行业代码 in ('+@HangYeLeiXing+')'
end
if @XingZhengQuCode!=''
begin
	set @XingZhengQuCode =' and b.行政区代码 in ('+@XingZhengQuCode+') '
end

set @select ='
--废气监测点达标率
select b.详细名称 as 企业名称,b.行政区,行业,a.监测点代码,c.监测点名称,a.监测年,a.季度,a.达标率
from 
(
	select 企业代码,监测点代码,监测年,季度,sum(cast(污染物浓度是否达标 as decimal(18,2)))/count(污染物浓度是否达标) as 达标率
	from 
	(
		select 企业代码,监测点代码,监测年,季度,次数,
		case(sum(cast(污染物浓度是否达标 as int))-count(污染物浓度是否达标))
		when 0 then 1 else 0 end as 污染物浓度是否达标
		from 
		(
			select 企业代码,监测点代码,监测年,季度,次数,浓度是否达标 as 污染物浓度是否达标,基准浓度是否达标
			from 业务_废气监测数据  
			where (污染物浓度 is not null and (排放上限 is not null or 排放下限 is not null)) 
			and 监测年='+@year+' and 季度='+@Quarter+' --and 企业代码=@EnterpriseName
		) as aa group by 监测年,季度,次数,企业代码,监测点代码
	) as a group by 监测年,季度,企业代码,监测点代码
) as a join V_工业和固废企业 b 
on a.企业代码=b.企业代码 and a.监测年=b.监测年 join 业务_废气监测点信息 c 
on a.监测年=c.监测年 and a.企业代码=c.企业代码 and a.监测点代码=c.监测点代码
where 1=1 '+@HangYeLeiXing+@XingZhengQuCode+'

--废水监测点达标率
select b.详细名称 as 企业名称,b.行政区,行业,a.监测点代码,c.监测点名称,a.监测年,a.季度,a.达标率
from 
(
	select 企业代码,监测点代码,监测年,季度,sum(cast(污染物浓度是否达标 as decimal(18,2)))/count(污染物浓度是否达标) as 达标率
	from 
	(
		select 企业代码,监测点代码,监测年,季度,次数,
		case(sum(cast(污染物浓度是否达标 as int))-count(污染物浓度是否达标))
		when 0 then 1 else 0 end as 污染物浓度是否达标
		from 
		(
			select 企业代码,监测点代码,监测年,季度,次数,污染物浓度是否达标,基准浓度是否达标
			from 业务_废水监测数据  
			where (污染物浓度 is not null and (排放上限 is not null or 排放下限 is not null)) 
			and 监测年='+@year+' and 季度='+@Quarter+' --and 企业代码=@EnterpriseName
		) as aa group by 监测年,季度,次数,企业代码,监测点代码
	) as a group by 监测年,季度,企业代码,监测点代码
) as a join V_工业和固废企业 b 
on a.企业代码=b.企业代码 and a.监测年=b.监测年 join 业务_废水排口信息 c 
on a.监测年=c.监测年 and a.企业代码=c.企业代码 and a.监测点代码=c.监测点代码 
where c.是否参与评价=1 '+@HangYeLeiXing+@XingZhengQuCode+'

--废气排放设备达标率
select b.详细名称 as 企业名称,b.行政区,行业,a.排污设备代码,c.排污设备名称,a.监测年,a.季度,a.达标率
from 
(
	select 企业代码,排污设备代码,监测年,季度,sum(cast(污染物浓度是否达标 as decimal(18,2)))/count(污染物浓度是否达标) as 达标率
	from 
	(
		select 企业代码,排污设备代码,监测年,季度,次数,
		case(sum(cast(污染物浓度是否达标 as int))-count(污染物浓度是否达标))
		when 0 then 1 else 0 end as 污染物浓度是否达标
		from 
		(
			select 企业代码,排污设备代码,监测年,季度,次数,浓度是否达标 as 污染物浓度是否达标
			from 业务_废气监测数据  
			where (污染物浓度 is not null and (排放上限 is not null or 排放下限 is not null)) 
			and 监测年='+@year+' and 季度='+@Quarter+' --and 企业代码=@EnterpriseName
		) as a group by 企业代码,排污设备代码,监测年,季度,次数
	) as a group by 企业代码,排污设备代码,监测年,季度
) as a join V_工业和固废企业 b 
on a.企业代码=b.企业代码 and a.监测年=b.监测年
join 业务_企业废气排放设备 c 
on a.监测年=c.监测年 and a.企业代码=c.企业代码 and a.排污设备代码=c.排污设备代码 
where 1=1 '+@HangYeLeiXing+@XingZhengQuCode+'

--废水污染源达标评价
select b.详细名称 as 企业名称,b.行政区,行业,a.受纳水体代码,d.代码名称 as 受纳水体,a.监测年,a.季度,a.达标率
from 
(
	select 企业代码,受纳水体代码,监测年,季度,sum(cast(污染物浓度是否达标 as decimal(18,2)))/count(污染物浓度是否达标) as 达标率
	from 
	(
		select 企业代码,受纳水体代码,监测年,季度,次数,
		case(sum(cast(污染物浓度是否达标 as int))-count(污染物浓度是否达标))
		when 0 then 1 else 0 end as 污染物浓度是否达标
		from 
		(
			select a.企业代码,a.监测年,a.季度,a.次数,a.污染物浓度是否达标,a.企业类型,a.监测点代码,
			c.受纳水体代码,c.是否参与评价,a.污染物浓度,a.排放上限,a.排放下限 
			from 业务_废水监测数据 a join 业务_废水排口信息 c 
			on a.监测点代码=c.监测点代码 and a.企业代码=c.企业代码 and a.监测年=c.监测年 and a.企业类型=c.企业类型
		) as aa 
		where (污染物浓度 is not null and (排放上限 is not null or 排放下限 is not null)) 
		and 是否参与评价=1 and 监测年='+@year+' and 季度='+@Quarter+' --and 企业代码=@EnterpriseName
		group by 企业代码,受纳水体代码,监测年,季度,次数
	) as a group by 企业代码,受纳水体代码,监测年,季度
) as a join V_工业和固废企业 b 
on a.企业代码=b.企业代码 and a.监测年=b.监测年
inner join 系统_代码 d on a.受纳水体代码=d.代码编码
where d.代码类型编码=16 '+@HangYeLeiXing+@XingZhengQuCode+'

--废气污染源达标评价
select b.详细名称 as 企业名称,a.企业代码,b.行政区,行业,a.监测年,a.季度,a.达标率
from 
(
	select 企业代码,监测年,季度,cast(sum(企业是否达标) as decimal(18,2))/count(企业是否达标) as 达标率
	from 
	(
		select 企业代码,监测年,季度,次数,
		case(sum(cast(污染物浓度是否达标 as int))-count(污染物浓度是否达标))
		when 0 then 1 else 0 end as 企业是否达标
		from 
		(
			select 企业代码,监测点代码,监测年,季度,次数,浓度是否达标 as 污染物浓度是否达标,基准浓度是否达标,企业类型
			from 业务_废气监测数据 
			where (污染物浓度 is not null and (排放上限 is not null or 排放下限 is not null)) 
			and 监测年='+@year+' and 季度='+@Quarter+' --and 企业代码=@EnterpriseName
		) as a group by 企业代码,监测年,季度,次数
	) as a group by 企业代码,监测年,季度
) as a join V_工业和固废企业 b 
on a.企业代码=b.企业代码 and a.监测年=b.监测年
where 1=1 '+@HangYeLeiXing+@XingZhengQuCode
exec (@select)
END

GO

------------------------------
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[GetWuShuiChuLiChang]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[GetWuShuiChuLiChang]
GO

-- 5、评价表-污水处理厂
--exec GetWuShuiChuLiChang 2011,1,'',''
CREATE proc [dbo].[GetWuShuiChuLiChang]
(
@year varchar(4),
@Quarter varchar(20),
@HangYeLeiXing varchar(max),
@XingZhengQuCode varchar(max)
)
as
begin
if @XingZhengQuCode !=''
set @XingZhengQuCode = ' and b.行政区代码 in ('+@XingZhengQuCode+')'
exec ('select b.详细名称 as 企业名称,a.企业代码,a.监测年,a.季度,a.次数,
a.污染物浓度是否达标,d.代码名称 as 受纳水体,c.行政区,a.达标率,
dbo.GetOverStandardDesc(1,a.监测年,a.季度,a.次数,a.监测日期,a.企业代码,b.受纳水体代码,'''',5) as 超标说明列
from 
(
	select 企业代码,监测年,季度,次数,监测日期,
	case(sum(cast(污染物浓度是否达标 as int))-count(污染物浓度是否达标))
	when 0 then 1 else 0 end as 污染物浓度是否达标,
	sum(cast(污染物浓度是否达标 as decimal(18,2)))/count(污染物浓度是否达标) 达标率
	from 
	(
		select 企业代码,监测年,季度,次数,出口污染物浓度 as 污染物浓度,排放上限,排放下限,
		isnull(浓度是否达标,0) as 污染物浓度是否达标,基准浓度是否达标,是否参与基准浓度,
		convert(datetime,convert(varchar,监测年)+''-''+convert(varchar,监测月)+''-''+convert(varchar,监测日)) as 监测日期
		from 业务_污水处理厂监测数据
	) as a 
	where 监测年='+@year +' and 季度='+@Quarter+' 
	and (污染物浓度 is not null and (排放上限 is not null or 排放下限 is not null)) 
	group by 企业代码,监测年,季度,次数,监测日期
) as a join 业务_污水处理厂信息 b 
on a.企业代码=b.企业代码 and a.监测年=b.监测年
join (select 代码编码,代码名称 as 行政区 from 系统_代码 where 代码类型编码=14) c on b.行政区代码=c.代码编码
join (select 代码编码,代码名称 from dbo.系统_代码 where 代码类型编码=16) d on b.受纳水体代码=d.代码编码 
where 1=1 '+@XingZhengQuCode)
End

GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[importCorpInfo]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[importCorpInfo]
GO

CREATE PROCEDURE [dbo].[importCorpInfo] 
 @year int,----- 企业监测年
 @type int,-----导入的信息类型
 @importYear int,--要导入的年
 @corpcode varchar(8000)----导入企业代码字符串 用逗号隔开
AS
BEGIN	
    declare @tableCorpCode Table ([id] varchar(20))---企业代码表
    declare @corpid  varchar(20)   
    insert into @tableCorpCode select * from  dbo.f_splitSTR(@corpcode,',')
	if(@type=1)---企业基本信息
begin
    CREATE TABLE #tempCorpInfo
(
	[监测年] [numeric](4, 0) ,
	[行政区代码] [char](6) ,
	[企业代码] [varchar](20) ,
	[法人代码] [varchar](14) ,
	[详细名称] [varchar](100) ,
	[行业代码] [char](10) ,
	[规模代码] [char](10) ,
	[登记注册类型代码] [char](10) ,
	[污染源控制级别代码] [char](10) ,
	[污染源类型代码] [char](10) ,
	[中心经度] [numeric](10, 4) ,
	[中心纬度] [numeric](10, 4) ,
	[企业详细地址] [varchar](100) ,
	[废水排放口数] [numeric](3, 0) ,
	[废气排放设备数] [numeric](3, 0) ,
	[废气排放口数] [numeric](3, 0) ,
	[SO2总量控制值] [numeric](10, 0) ,
	[COD总量控制值] [numeric](10, 0) ,
	[排污申报登记号] [varchar](12) ,
	[无组织排放点数] [numeric](3, 0) ,
	[法人代表姓名] [varchar](20) ,
	[污染源监测联系人] [varchar](20) ,
	[电话] [varchar](15) ,
	[传真] [varchar](15) ,
	[邮政编码] [char](10) ,
	[开业时间] [datetime] NULL,
	[产污工艺简述] [varchar](200) ,
	[污染处理工艺简述] [varchar](200) ,
	[备注] [varchar](400) ,
	[最后修改时间] [datetime] ,
	[污染源监测联系部门] [varchar](80),
	[删除状态] [char](1) ,
[污染源控制级别代码气] [char](10) ,
自定义属性 [nvarchar](50),
)
    DECLARE corpCodes_cursor CURSOR LOCAL FAST_FORWARD FOR --声明并定义快速只进的本地游标
    select * from @tableCorpCode 
    open corpCodes_cursor --打开游标
       FETCH NEXT FROM corpCodes_cursor INTO @corpid
           while @@FETCH_STATUS = 0 
            begin
              if(not exists(select * from dbo.业务_企业基本信息 where 企业代码=@corpid and 监测年=@importYear))
                begin
                insert into #tempCorpInfo select * from dbo.业务_企业基本信息 where 企业代码=@corpid and 监测年=@year
                update #tempCorpInfo set 监测年=@importYear           
                end 
              FETCH NEXT FROM corpCodes_cursor INTO @corpid
            end
    CLOSE corpCodes_cursor    --关闭游标
    DEALLOCATE corpCodes_cursor 
    insert into dbo.业务_企业基本信息 select * from #tempCorpInfo  
end
if( @type =2)---企业废气排放口
   begin
    CREATE TABLE #teble2
(
	[监测年] [numeric](4, 0) ,
	[企业代码] [varchar](20) ,
	[企业类型] [char](1) ,
	[排气筒代码] [char](10) ,
	[排气筒名称] [varchar](50) ,
	[排气筒经度] [numeric](10, 5),
	[排气筒纬度] [numeric](10, 5) ,
	[排气筒高度] [numeric](6, 2),
	[排气筒截取面积] [numeric](7, 2),
)
   DECLARE corpCodes_cursor CURSOR LOCAL FAST_FORWARD FOR --声明并定义快速只进的本地游标
    select * from @tableCorpCode 
    open corpCodes_cursor --打开游标
       FETCH NEXT FROM corpCodes_cursor INTO @corpid
           while @@FETCH_STATUS = 0 
            begin
              if(not exists(select * from dbo.业务_企业废气排放口 where 企业代码=@corpid and 监测年=@importYear))
                begin
                insert into #teble2 select * from dbo.业务_企业废气排放口 where 企业代码=@corpid and 监测年=@year
                update #teble2 set 监测年=@importYear           
                end 
              FETCH NEXT FROM corpCodes_cursor INTO @corpid
            end
    CLOSE corpCodes_cursor    --关闭游标
    DEALLOCATE corpCodes_cursor 
    insert into dbo.业务_企业废气排放口 select * from #teble2  
   end
if(@type=3)----废气排放设备
  begin
   CREATE TABLE #table3(
	[监测年] [numeric](4, 0) ,
	[企业代码] [varchar](20) ,
	[企业类型] [char](1) ,
	[排污设备代码] [char](10) ,
	[排污设备名称] [varchar](50) ,
	[排污设备类型] [char](10) ,
	[生产产品] [varchar](50) ,
	[生产能力] [numeric](10, 0) ,
	[生产能力单位] [varchar](50) ,
	[燃料类型] [char](10),
	[燃料年消耗量] [decimal](18, 2) ,
	[废气类别] [char](10) ,
	[排放规律代码] [char](10) ,
	[排气筒代码] [char](10) ,
	是否循环流化床锅炉 [bit],
	锅炉燃烧方式 [varchar](10) ,
	低炭燃烧技术 [varchar](10) ,
	排放设备类型值 [nvarchar](50) ,
	采用何种处理设施 [nvarchar](50) ,
	投产日期 [smalldatetime],
)
CREATE TABLE #table31(
	[监测年] [numeric](4, 0) ,
	[企业代码] [varchar](20),
	[企业类型] [char](1) ,
	[处理设施名称] [varchar](50) ,
	[处理工艺简述] [varchar](200) ,
	[处理设施建成日期] [datetime] ,
	[备注] [varchar](100) ,
	[排污设备编码] [char](10),
	[处理工艺代码] [nvarchar](50),
    [采用何种处理设施] [nvarchar](50),
)
   DECLARE corpCodes_cursor CURSOR LOCAL FAST_FORWARD FOR --声明并定义快速只进的本地游标
    select * from @tableCorpCode 
    open corpCodes_cursor --打开游标
       FETCH NEXT FROM corpCodes_cursor INTO @corpid
           while @@FETCH_STATUS = 0 
            begin
              if(not exists(select * from dbo.业务_企业废气排放设备 where 企业代码=@corpid and 监测年=@importYear))
                begin
                insert into #table3 select * from dbo.业务_企业废气排放设备 where 企业代码=@corpid and 监测年=@year
                update #table3 set 监测年=@importYear  
                insert into #table31 select * from dbo.业务_企业废气处理设施信息 where 企业代码=@corpid and 监测年=@year
                update #table31 set 监测年=@importYear          
                end 
              FETCH NEXT FROM corpCodes_cursor INTO @corpid
            end
    CLOSE corpCodes_cursor    --关闭游标
    DEALLOCATE corpCodes_cursor 
    insert into dbo.业务_企业废气排放设备 select * from #table3
    select * from #table31
    insert into dbo.业务_企业废气处理设施信息 select * from #table31  
  end
if(@type=4)---业务_废气监测点信息
  begin
  CREATE TABLE #table4(
	[监测年] [numeric](4, 0) ,
	[企业代码] [varchar](20) ,
	[监测点代码] [varchar](20),
	[监测点名称] [varchar](50) ,
	[执行标准代码] [varchar](50) ,
	[执行标准条件编码] [varchar](50) ,
	[测点烟道截面积] [numeric](7, 2) ,
	[企业类型] [char](1) ,
	[排污设备代码] [char](10) ,
	[所在地区空气质量功能区划级别] [char](10) ,
	[是否安装在线监测设备] [bit] ,
	[备注] [varchar](100) ,
)

CREATE TABLE #table41    ----业务_企业监测点污染物信息
  (
	[监测年] [numeric](4, 0) ,
	[企业代码] [varchar](20) ,
	[监测点代码] [varchar](20) ,
	[监测点名称] [varchar](50) ,
	[企业类型] [char](1) ,
	[监测项目编号] [char](10) ,
	[监测项目名称] [varchar](50) ,
	[处理设施名称] [varchar](50) ,
	[是否安装在线监测设备] [bit] ,
)
create table #table42	---业务_企业监测点执行标准
(
	[监测年] [numeric](4, 0) ,
	[企业代码] [varchar](20) ,
	[企业类型] [char](1) ,
	[监测点代码] [varchar](20) ,
	[监测点名称] [varchar](100) ,
	[起始日期] [smalldatetime] ,
	[结止日期] [smalldatetime] ,
	[执行标准名称] [varchar](100) ,
	[执行标准代码] [varchar](50) ,
	[执行标准条件代码] [varchar](50) ,
)
create table #table43	---业务_企业监测产品信息
(
	[监测年] [numeric](4, 0) ,
	[企业代码] [varchar](20) ,
	[企业类型] [char](1) ,
	[监测点代码] [varchar](20) ,
	[起始日期] [smalldatetime] ,
	[结止日期] [smalldatetime] ,
	[产品编码] [varchar](50) ,
	[执行标准代码] [varchar](50) ,
	[执行标准条件代码] [varchar](50) ,
)
create table #table44	---业务_企业监测项目时间段
(
	[监测年] [numeric](4, 0) ,
	[企业代码] [varchar](20) ,
	[企业类型] [char](1) ,
	[监测点代码] [varchar](20) ,
	[监测点名称] [varchar](100) ,
	[监测项目编号] [varchar](50) ,
	[起始日期] [smalldatetime] ,
	[结止日期] [smalldatetime] ,
	[执行标准代码] [varchar](50) ,
	[执行标准条件代码] [varchar](50) ,
)

   DECLARE corpCodes_cursor CURSOR LOCAL FAST_FORWARD FOR --声明并定义快速只进的本地游标
    select * from @tableCorpCode 
    open corpCodes_cursor --打开游标
       FETCH NEXT FROM corpCodes_cursor INTO @corpid
           while @@FETCH_STATUS = 0 
            begin
              if(not exists(select * from dbo.业务_废气监测点信息 where 企业代码=@corpid and 监测年=@importYear))
                begin
                insert into #table4 select * from dbo.业务_废气监测点信息 where 企业代码=@corpid and 监测年=@year
                update #table4 set 监测年=@importYear         
                end 
               if(not exists(select * from dbo.业务_企业监测点污染物信息 where 企业代码=@corpid and 监测年=@importYear))
                begin
                insert into #table41 select 监测年,企业代码,监测点代码,监测点名称,企业类型,监测项目编号,监测项目名称,处理设施名称,是否安装在线监测设备 from dbo.业务_企业监测点污染物信息 where 企业代码=@corpid and 监测年=@year
                update #table41 set 监测年=@importYear 
                end
                if(not exists(select * from dbo.业务_企业监测点执行标准 where 企业代码=@corpid and 监测年=@importYear))
                begin
                insert into #table42 select 监测年,企业代码,企业类型,监测点代码,监测点名称,起始日期,结止日期,执行标准名称,执行标准代码,执行标准条件代码 from dbo.业务_企业监测点执行标准 where 企业代码=@corpid and 监测年=@year
                update #table42 set 监测年=@importYear , 起始日期=dateadd(year,@importYear-year(起始日期),起始日期), 结止日期=dateadd(year,@importYear-year(结止日期),结止日期)
                end
                if(not exists(select * from dbo.业务_企业监测点执行标准 where 企业代码=@corpid and 监测年=@importYear))
                begin
                insert into #table43 select 监测年,企业代码,企业类型,监测点代码,起始日期,结止日期,产品编码,执行标准代码,执行标准条件代码 from dbo.业务_企业监测产品信息 where 企业代码=@corpid and 监测年=@year
                update #table43 set 监测年=@importYear , 起始日期=dateadd(year,@importYear-year(起始日期),起始日期), 结止日期=dateadd(year,@importYear-year(结止日期),结止日期)
                end
                if(not exists(select * from dbo.业务_企业监测项目时间段 where 企业代码=@corpid and 监测年=@importYear))
                begin
                insert into #table44 select 监测年,企业代码,企业类型,监测点代码,监测点名称,监测项目编号,起始日期,结止日期,执行标准代码,执行标准条件代码 from dbo.业务_企业监测项目时间段 where 企业代码=@corpid and 监测年=@year
                update #table44 set 监测年=@importYear , 起始日期=dateadd(year,@importYear-year(起始日期),起始日期), 结止日期=dateadd(year,@importYear-year(结止日期),结止日期)
                end
              FETCH NEXT FROM corpCodes_cursor INTO @corpid
            end
    CLOSE corpCodes_cursor    --关闭游标
    DEALLOCATE corpCodes_cursor 
    insert into dbo.业务_废气监测点信息 select * from #table4
    insert into dbo.业务_企业监测点污染物信息(监测年,企业代码,监测点代码,监测点名称,企业类型,监测项目编号,监测项目名称,处理设施名称,是否安装在线监测设备) select * from #table41  
    insert into dbo.业务_企业监测点执行标准(监测年,企业代码,企业类型,监测点代码,监测点名称,起始日期,结止日期,执行标准名称,执行标准代码,执行标准条件代码) select * from #table42 
    insert into dbo.业务_企业监测产品信息(监测年,企业代码,企业类型,监测点代码,起始日期,结止日期,产品编码,执行标准代码,执行标准条件代码) select * from #table43  
    insert into dbo.业务_企业监测项目时间段(监测年,企业代码,企业类型,监测点代码,监测点名称,监测项目编号,起始日期,结止日期,执行标准代码,执行标准条件代码) select * from #table44  
  end

if(@type=5)   ------业务_废水排口信息
 begin
CREATE TABLE #table5(
	[监测年] [numeric](4, 0) ,
	[企业代码] [varchar](20) ,
	[监测点代码] [varchar](20) ,
	[企业类型] [char](1) ,
	[监测点名称] [varchar](50) ,
	[监测点经度] [numeric](10, 4) ,
	[监测点纬度] [numeric](10, 4),
	[排放规律代码] [char](10) ,
	[排水去向类型代码] [char](10) ,
	[受纳水体代码] [char](10) ,
	[污水处理厂代码] [varchar](20),
	[受纳水体功能区类别] [char](10) ,
	[执行标准代码] [varchar](50) ,
	[执行标准条件代码] [varchar](50) ,
	[排口属性] [varchar](8),
    [备注] [varchar](100),
    是否参与评价 [bit],
)
CREATE TABLE #table51    ----业务_企业监测点污染物信息
  (
	[监测年] [numeric](4, 0) ,
	[企业代码] [varchar](20) ,
	[监测点代码] [varchar](20) ,
	[监测点名称] [varchar](50) ,
	[企业类型] [char](1) ,
	[监测项目编号] [char](10) ,
	[监测项目名称] [varchar](50) ,
	[处理设施名称] [varchar](50) ,
	[是否安装在线监测设备] [bit] ,
)
create table #table52	---业务_企业监测点执行标准
(
	[监测年] [numeric](4, 0) ,
	[企业代码] [varchar](20) ,
	[企业类型] [char](1) ,
	[监测点代码] [varchar](20) ,
	[监测点名称] [varchar](100) ,
	[起始日期] [smalldatetime] ,
	[结止日期] [smalldatetime] ,
	[执行标准名称] [varchar](100) ,
	[执行标准代码] [varchar](50) ,
	[执行标准条件代码] [varchar](50)
)
create table #table53	---业务_企业监测产品信息
(
	[监测年] [numeric](4, 0) ,
	[企业代码] [varchar](20) ,
	[企业类型] [char](1) ,
	[监测点代码] [varchar](50) ,
	[起始日期] [smalldatetime] ,
	[结止日期] [smalldatetime] ,
	[产品编码] [varchar](50) ,
	[执行标准代码] [varchar](50) ,
	[执行标准条件代码] [varchar](50) ,
)
create table #table54	---业务_企业监测项目时间段
(
	[监测年] [numeric](4, 0) ,
	[企业代码] [varchar](20) ,
	[企业类型] [char](1) ,
	[监测点代码] [varchar](20) ,
	[监测点名称] [varchar](100) ,
	[监测项目编号] [varchar](50) ,
	[起始日期] [smalldatetime] ,
	[结止日期] [smalldatetime] ,
	[执行标准代码] [varchar](50) ,
	[执行标准条件代码] [varchar](50) ,
)
 DECLARE corpCodes_cursor CURSOR LOCAL FAST_FORWARD FOR --声明并定义快速只进的本地游标
    select * from @tableCorpCode 
    open corpCodes_cursor --打开游标
       FETCH NEXT FROM corpCodes_cursor INTO @corpid
           while @@FETCH_STATUS = 0 
            begin
              if(not exists(select * from dbo.业务_废水排口信息 where 企业代码=@corpid and 监测年=@importYear))
                begin
                insert into #table5 select * from dbo.业务_废水排口信息 where 企业代码=@corpid and 监测年=@year
                update #table5 set 监测年=@importYear         
                end 
               if(not exists(select * from dbo.业务_企业监测点污染物信息 where 企业代码=@corpid and 监测年=@importYear))
                begin
                insert into #table51 select 监测年,企业代码,监测点代码,监测点名称,企业类型,监测项目编号,监测项目名称,处理设施名称,是否安装在线监测设备 from dbo.业务_企业监测点污染物信息 where 企业代码=@corpid and 监测年=@year
                update #table51 set 监测年=@importYear 
                end
                if(not exists(select * from dbo.业务_企业监测点执行标准 where 企业代码=@corpid and 监测年=@importYear))
                begin
                insert into #table52 select 监测年,企业代码,企业类型,监测点代码,监测点名称,起始日期,结止日期,执行标准名称,执行标准代码,执行标准条件代码 from dbo.业务_企业监测点执行标准 where 企业代码=@corpid and 监测年=@year
                update #table52 set 监测年=@importYear , 起始日期=dateadd(year,@importYear-year(起始日期),起始日期), 结止日期=dateadd(year,@importYear-year(结止日期),结止日期)
                end
                if(not exists(select * from dbo.业务_企业监测产品信息 where 企业代码=@corpid and 监测年=@importYear))
                begin
                insert into #table53 select 监测年,企业代码,企业类型,监测点代码,起始日期,结止日期,产品编码,执行标准代码,执行标准条件代码 from dbo.业务_企业监测产品信息 where 企业代码=@corpid and 监测年=@year
                update #table53 set 监测年=@importYear , 起始日期=dateadd(year,@importYear-year(起始日期),起始日期), 结止日期=dateadd(year,@importYear-year(结止日期),结止日期)
                end
                if(not exists(select * from dbo.业务_企业监测项目时间段 where 企业代码=@corpid and 监测年=@importYear))
                begin
                insert into #table54 select 监测年,企业代码,企业类型,监测点代码,监测点名称,监测项目编号,起始日期,结止日期,执行标准代码,执行标准条件代码 from dbo.业务_企业监测项目时间段 where 企业代码=@corpid and 监测年=@year
                update #table54 set 监测年=@importYear , 起始日期=dateadd(year,@importYear-year(起始日期),起始日期), 结止日期=dateadd(year,@importYear-year(结止日期),结止日期)
                end
              FETCH NEXT FROM corpCodes_cursor INTO @corpid
            end
    CLOSE corpCodes_cursor    --关闭游标
    DEALLOCATE corpCodes_cursor 
    insert into dbo.业务_废水排口信息 select * from #table5
    insert into dbo.业务_企业监测点污染物信息(监测年,企业代码,监测点代码,监测点名称,企业类型,监测项目编号,监测项目名称,处理设施名称,是否安装在线监测设备) select * from #table51  
    insert into dbo.业务_企业监测点执行标准(监测年,企业代码,企业类型,监测点代码,监测点名称,起始日期,结止日期,执行标准名称,执行标准代码,执行标准条件代码) select * from #table52 
    insert into dbo.业务_企业监测产品信息(监测年,企业代码,企业类型,监测点代码,起始日期,结止日期,产品编码,执行标准代码,执行标准条件代码) select * from #table53  
    insert into dbo.业务_企业监测项目时间段(监测年,企业代码,企业类型,监测点代码,监测点名称,监测项目编号,起始日期,结止日期,执行标准代码,执行标准条件代码) select * from #table54  
 end

if(@type=6)
 begin
  /*CREATE TABLE #table6(
	[监测年] [numeric](4, 0) ,
	[企业代码] [varchar](20) ,
	[监测点代码] [varchar](20),
	[监测项目代码] [char](10) ,
	[监测设备代码] [varchar](10),
	[企业类型] [char](1) ,
	[监测点名称] [varchar](50) ,
	[监测设备名称] [varchar](50) ,
	[监测设备型号] [varchar](50) ,
	[生产厂家] [varchar](100) ,
	[是否连网] [bit] ,
	[运行状态] [varchar](100) ,
	[备注] [varchar](100) ,
)*/
CREATE TABLE #table6(--业务_在线监测系统
	[id] [varchar](50),
	[监测年] [numeric](4, 0) ,
	[企业类型] [char](1) ,
	[企业代码] [varchar](20) ,
	[监测点代码] [varchar](20),
	[监测系统名称] [varchar](50),
	[集成厂家] [varchar](100),
	[安装位置] [varchar](50),
	[进口作用代码] [varchar](10),
	[是否连网] [bit],
	[是否验收] [bit],
	[流速仪名称] [varchar](50),
	[流速仪厂家] [varchar](50),
	[流速仪型号] [varchar](50),
	[流速仪类型代码] [varchar](50),
	[最近检验日期] [smalldatetime],
    [监测系统型号] [varchar](50),
)
CREATE TABLE #table61(--业务_在线监测系统项目
	[ID] [varchar](50),
	[监测系统ID号] [varchar](50),
	[监测系统ID号新] [varchar](50),
	[监测项目编号] [varchar](50),
    [监测原理] [varchar](200),
	[监测设备型号] [varchar](50),
	[设备生产厂家] [varchar](50),
)
 DECLARE corpCodes_cursor CURSOR LOCAL FAST_FORWARD FOR --声明并定义快速只进的本地游标
    select * from @tableCorpCode 
    open corpCodes_cursor --打开游标
       FETCH NEXT FROM corpCodes_cursor INTO @corpid
           while @@FETCH_STATUS = 0 
            begin
                if(not exists(select * from dbo.业务_在线监测系统 where 企业代码=@corpid and 监测年=@importYear))
                begin
                insert into #table6 select * from dbo.业务_在线监测系统 where 企业代码=@corpid and 监测年=@year
                update #table6 set 监测年=@importYear , 最近检验日期=dateadd(year,@importYear-year(最近检验日期),最近检验日期)  
                end  
              FETCH NEXT FROM corpCodes_cursor INTO @corpid
            end
    CLOSE corpCodes_cursor    --关闭游标
    DEALLOCATE corpCodes_cursor 
    --insert into dbo.业务_在线监测设备 select * from #table6 
    insert into dbo.业务_在线监测系统(ID,监测年,企业类型,企业代码,监测点代码,监测系统名称,集成厂家,安装位置,进口作用代码,是否连网,是否验收,流速仪名称,流速仪厂家,流速仪型号,流速仪类型代码,最近检验日期,监测系统型号) 
    select newid(),监测年,企业类型,企业代码,监测点代码,监测系统名称,集成厂家,安装位置,进口作用代码,是否连网,是否验收,流速仪名称,流速仪厂家,流速仪型号,流速仪类型代码,最近检验日期,监测系统型号 from #table6
    -- 业务_在线监测系统设备
    insert into #table61(ID,[监测系统ID号],[监测项目编号],[监测原理],[监测设备型号],[设备生产厂家]) 
	select newid(),监测系统ID号,监测项目编号,监测原理,监测设备型号,设备生产厂家 from 业务_在线监测系统_项目 
    where 监测系统ID号 in(select id from #table6)--select * from #table6
    update #table61 set 监测系统ID号新=c.id
	from #table61 a join 业务_在线监测系统 b 
	on a.监测系统ID号=b.id join 业务_在线监测系统 c
	on b.监测年=c.监测年-(@importYear-@year) and b.企业类型=c.企业类型 and b.企业代码=c.企业代码 and b.监测点代码=c.监测点代码 and b.监测系统名称=c.监测系统名称
    insert into dbo.业务_在线监测系统_项目(ID,监测系统ID号,监测项目编号,监测原理,监测设备型号,设备生产厂家)
	select newid(),[监测系统ID号新],监测项目编号,监测原理,[监测设备型号],[设备生产厂家] from #table61
 end
 if(@type=7)----[业务_固废处理厂信息
  begin
  CREATE TABLE #table7(
	[监测年] [numeric](4, 0),
	[行政区代码] [char](6) ,
	[企业代码] [varchar](20) ,
	[法人代码] [varchar](14) ,
	[详细名称] [varchar](100),
	[企业类型] [char](1) ,
	[中心经度] [numeric](10, 4),
	[中心纬度] [numeric](10, 4) ,
	[固废处理方式代码] [char](10) ,
	[固废类型代码] [char](10),
	[设计处理量] [numeric](8, 0) ,
	[废水排放口数] [numeric](3, 0) ,
	[气排放口数] [numeric](3, 0) ,
	[法人代表姓名] [varchar](20) ,
	[监测联系人姓名] [varchar](20),
	[电话] [varchar](15)  ,
	[传真] [varchar](15) ,
	[邮政编码] [char](10) ,
	[详细地址] [varchar](100) ,
	[开业时间] [datetime] ,
	[处理工艺简述] [varchar](200) ,
	[备注] [varchar](200) ,
	[污染源监测联系部门] [varchar](80) ,
	[删除状态] [char](1),
	[控制级别代码] [varchar](10),
) 
     DECLARE corpCodes_cursor CURSOR LOCAL FAST_FORWARD FOR --声明并定义快速只进的本地游标
    select * from @tableCorpCode 
    open corpCodes_cursor --打开游标
       FETCH NEXT FROM corpCodes_cursor INTO @corpid
           while @@FETCH_STATUS = 0 
            begin
              if(not exists(select * from dbo.业务_固废处理厂信息 where 企业代码=@corpid and 监测年=@importYear))
                begin
                insert into #table7 select * from dbo.业务_固废处理厂信息 where 企业代码=@corpid and 监测年=@year
                update #table7 set 监测年=@importYear           
                end 
              FETCH NEXT FROM corpCodes_cursor INTO @corpid
            end
    CLOSE corpCodes_cursor    --关闭游标
    DEALLOCATE corpCodes_cursor 
    insert into dbo.业务_固废处理厂信息 select * from #table7  
  end
if(@type=8) ------[业务_污水处理厂信息]
 begin
	 CREATE TABLE #table8(
		[监测年] [numeric](4, 0) ,
		[行政区代码] [char](6) ,
		[企业代码] [varchar](20) ,
		[法人代码] [varchar](14) ,
		[详细名称] [varchar](100) ,
		[详细地址] [varchar](100) ,
		[中心经度] [numeric](14, 4) ,
		[中心纬度] [numeric](14, 4) NULL,
		[污水处理级别] [char](10),
		[污水处理工艺] [varchar](200) ,
		[排水去向类型] [char](10) ,
		[受纳水体代码] [char](10) ,
		[受纳水体功能区划水质类别] [char](10) ,
		[纳污区域面积] [numeric](7, 1),
		[服务人口] [numeric](9, 2),
		[工业废水比例] [numeric](7, 2),
		[建成运行时间] [datetime] NULL,
		[设计处理能力] [numeric](7, 0) ,
		[是否安装在线监测仪] [bit] ,
		[执行排放标准级别] [varchar](20) ,
		[执行排放标准条件] [varchar](20) ,
		[污染源监测联系部门] [varchar](80),
		[删除状态] [char](1) ,
		[控制级别代码] [varchar](10),
	)
	create table #table80	---业务_企业监测点执行标准
(
	[ID] [varchar](50) ,
	[监测年] [numeric](4, 0) ,
	[企业代码] [varchar](20) ,
	[企业类型] [char](1) ,
	[监测点代码] [varchar](20) ,
	[监测点名称] [varchar](100) ,
	[起始日期] [smalldatetime] ,
	[结止日期] [smalldatetime] ,
	[执行标准名称] [varchar](100) ,
	[执行标准代码] [varchar](50) ,
	[执行标准条件代码] [varchar](50)
)
     CREATE TABLE #table81 --[dbo].[业务_污水处理厂污染物信息]
	(  
		[监测年] [numeric](4, 0) ,
		[企业代码] [varchar](20) ,
		[监测项目编号] [char](10) ,
		[标准条件编码] [varchar](50) ,
		[监测项目名称] [varchar](50) ,
		[是否基本项目] [bit] ,
		[标准代码] [varchar](30) ,
		[是否安装在线监测设备] [bit] ,
	)
	
	create table #table82	---业务_企业监测项目时间段
(
	[ID] [varchar](50) ,
	[监测年] [numeric](4, 0) ,
	[企业代码] [varchar](20) ,
	[企业类型] [char](1) ,
	[监测点代码] [varchar](50) ,
	[监测点名称] [varchar](100) ,
	[监测项目编号] [varchar](50) ,
	[起始日期] [smalldatetime] ,
	[结止日期] [smalldatetime] ,
	[执行标准代码] [varchar](50) ,
	[执行标准条件代码] [varchar](50) ,
)
     DECLARE corpCodes_cursor CURSOR LOCAL FAST_FORWARD FOR --声明并定义快速只进的本地游标
    select * from @tableCorpCode 
    open corpCodes_cursor --打开游标
       FETCH NEXT FROM corpCodes_cursor INTO @corpid
           while @@FETCH_STATUS = 0 
            begin
              if(not exists(select * from dbo.[业务_污水处理厂信息] where 企业代码=@corpid and 监测年=@importYear))
                begin
                insert into #table8 select * from dbo.[业务_污水处理厂信息] where 企业代码=@corpid and 监测年=@year
                update #table8 set 监测年=@importYear           
                end 
                if(not exists(select * from dbo.业务_企业监测点执行标准 where 企业代码=@corpid and 监测年=@importYear))
                begin
                insert into #table80 select ID,监测年,企业代码,企业类型,监测点代码,监测点名称,起始日期,结止日期,执行标准名称,执行标准代码,执行标准条件代码 from dbo.业务_企业监测点执行标准 where 企业代码=@corpid and 监测年=@year
                update #table80 set 监测年=@importYear , 起始日期=dateadd(year,@importYear-year(起始日期),起始日期), 结止日期=dateadd(year,@importYear-year(结止日期),结止日期)
                end
                if(not exists(select * from dbo.业务_污水处理厂污染物信息 where 企业代码=@corpid and 监测年=@importYear))
                begin
                insert into #table81 select * from dbo.业务_污水处理厂污染物信息 where 企业代码=@corpid and 监测年=@year
                update #table81 set 监测年=@importYear           
                end 
                if(not exists(select * from dbo.业务_企业监测项目时间段 where 企业代码=@corpid and 监测年=@importYear))
                begin
                insert into #table82 select ID,监测年,企业代码,企业类型,监测点代码,监测点名称,监测项目编号,起始日期,结止日期,执行标准代码,执行标准条件代码 from dbo.业务_企业监测项目时间段 where 企业代码=@corpid and 监测年=@year
                update #table82 set 监测年=@importYear , 起始日期=dateadd(year,@importYear-year(起始日期),起始日期), 结止日期=dateadd(year,@importYear-year(结止日期),结止日期)
                end
              FETCH NEXT FROM corpCodes_cursor INTO @corpid
            end
    CLOSE corpCodes_cursor    --关闭游标
    DEALLOCATE corpCodes_cursor 
    --select * from #table8
    insert into dbo.[业务_污水处理厂信息] select * from #table8 
    insert into dbo.业务_企业监测点执行标准(ID,监测年,企业代码,企业类型,监测点代码,监测点名称,起始日期,结止日期,执行标准名称,执行标准代码,执行标准条件代码) select * from #table80 
    insert into dbo.业务_污水处理厂污染物信息 select * from #table81 
    insert into dbo.业务_企业监测项目时间段(ID,监测年,企业代码,企业类型,监测点代码,监测点名称,监测项目编号,起始日期,结止日期,执行标准代码,执行标准条件代码) select * from #table82  
 
 
 end
 
 if(@type=9) ------[无组织监测点信息]
 begin
 CREATE TABLE #table9(
	[监测年] [numeric](4, 0) ,
	[企业代码] [varchar](20) ,
	[监测点代码] [varchar](20) ,
	[监测点名称] [varchar](50) ,
    [备注] [varchar](100),
    [企业类型] [char](1) ,
)
CREATE TABLE #table91    ----业务_企业监测点污染物信息
  (
	[监测年] [numeric](4, 0) ,
	[企业代码] [varchar](20) ,
	[监测点代码] [varchar](20) ,
	[监测点名称] [varchar](50) ,
	[企业类型] [char](1) ,
	[监测项目编号] [char](10) ,
	[监测项目名称] [varchar](50) ,
	[处理设施名称] [varchar](50) ,
	[是否安装在线监测设备] [bit] ,
)
create table #table92	---业务_企业监测点执行标准
(
	[监测年] [numeric](4, 0) ,
	[企业代码] [varchar](20) ,
	[企业类型] [char](1) ,
	[监测点代码] [varchar](20) ,
	[监测点名称] [varchar](100) ,
	[起始日期] [smalldatetime] ,
	[结止日期] [smalldatetime] ,
	[执行标准名称] [varchar](100) ,
	[执行标准代码] [varchar](50) ,
	[执行标准条件代码] [varchar](50)
)
create table #table93	---业务_企业监测项目时间段
(
	[监测年] [numeric](4, 0) ,
	[企业代码] [varchar](20) ,
	[企业类型] [char](1) ,
	[监测点代码] [varchar](50) ,
	[监测点名称] [varchar](100) ,
	[监测项目编号] [varchar](50) ,
	[起始日期] [smalldatetime] ,
	[结止日期] [smalldatetime] ,
	[执行标准代码] [varchar](50) ,
	[执行标准条件代码] [varchar](50) ,
)
 DECLARE corpCodes_cursor CURSOR LOCAL FAST_FORWARD FOR --声明并定义快速只进的本地游标
    select * from @tableCorpCode 
    open corpCodes_cursor --打开游标
       FETCH NEXT FROM corpCodes_cursor INTO @corpid
           while @@FETCH_STATUS = 0 
            begin
              if(not exists(select * from dbo.业务_无组织排放信息 where 企业代码=@corpid and 监测年=@importYear))
                begin
                insert into #table9 select 监测年,企业代码,监测点代码,监测点名称,备注,企业类型 from dbo.业务_无组织排放信息 where 企业代码=@corpid and 监测年=@year
                update #table9 set 监测年=@importYear         
                end 
               if(not exists(select * from dbo.业务_企业监测点污染物信息 where 企业代码=@corpid and 监测年=@importYear))
                begin
                insert into #table91 select 监测年,企业代码,监测点代码,监测点名称,企业类型,监测项目编号,监测项目名称,处理设施名称,是否安装在线监测设备 from dbo.业务_企业监测点污染物信息 where 企业代码=@corpid and 监测年=@year
                update #table91 set 监测年=@importYear 
                end
                if(not exists(select * from dbo.业务_企业监测点执行标准 where 企业代码=@corpid and 监测年=@importYear))
                begin
                insert into #table92 select 监测年,企业代码,企业类型,监测点代码,监测点名称,起始日期,结止日期,执行标准名称,执行标准代码,执行标准条件代码 from dbo.业务_企业监测点执行标准 where 企业代码=@corpid and 监测年=@year
                update #table92 set 监测年=@importYear , 起始日期=dateadd(year,@importYear-year(起始日期),起始日期), 结止日期=dateadd(year,@importYear-year(结止日期),结止日期)
                end
                if(not exists(select * from dbo.业务_企业监测项目时间段 where 企业代码=@corpid and 监测年=@importYear))
                begin
                insert into #table93 select 监测年,企业代码,企业类型,监测点代码,监测点名称,监测项目编号,起始日期,结止日期,执行标准代码,执行标准条件代码 from dbo.业务_企业监测项目时间段 where 企业代码=@corpid and 监测年=@year
                update #table93 set 监测年=@importYear , 起始日期=dateadd(year,@importYear-year(起始日期),起始日期), 结止日期=dateadd(year,@importYear-year(结止日期),结止日期)
                end
              FETCH NEXT FROM corpCodes_cursor INTO @corpid
            end
    CLOSE corpCodes_cursor    --关闭游标
    DEALLOCATE corpCodes_cursor 
    insert into dbo.业务_无组织排放信息(监测年,企业代码,监测点代码,监测点名称,备注,企业类型) select * from #table9
    insert into dbo.业务_企业监测点污染物信息(监测年,企业代码,监测点代码,监测点名称,企业类型,监测项目编号,监测项目名称,处理设施名称,是否安装在线监测设备) select * from #table91  
    insert into dbo.业务_企业监测点执行标准(监测年,企业代码,企业类型,监测点代码,监测点名称,起始日期,结止日期,执行标准名称,执行标准代码,执行标准条件代码) select * from #table92 
    insert into dbo.业务_企业监测项目时间段(监测年,企业代码,企业类型,监测点代码,监测点名称,监测项目编号,起始日期,结止日期,执行标准代码,执行标准条件代码) select * from #table93  
 end
END









