您的位置:首页 > 数据库

sql插入数据时,避免插入重复数据

2016-11-23 13:18 337 查看
1.往表T_Mid_WaterIndexArea中插入数据

   insert into [dbo].[T_Mid_WaterIndexArea](AreaCode,Year,DO,CODMn,BOD5,COD,NH3N,TP,TN,CompositeIndex)

select c.AreaCode,c.Year,

--c.AreaName,

AVG(c.DO) DO,AVG(c.CODMn) CODMn,AVG(c.BOD5) BOD5,AVG(c.COD) COD,

AVG(c.NH3N) NH3N,AVG(c.TP) TP,AVG(c.TN) TN,AVG(c.CompositeIndex) CompositeIndex

  from

(select a.*,b.Year,b.DO,b.CODMn,b.BOD5,b.COD,b.NH3N,b.TP,b.TN,b.CompositeIndex 

from 

[dbo].[T_Bas_RiverSection] a

join [dbo].[T_Mid_WaterIndexSection] b

on a.SectionCode=b.SectionCode) c

group by c.AreaCode,c.Year



2.避免插入重复数据

   insert into [dbo].[T_Mid_WaterIndexArea](AreaCode,Year,DO,CODMn,BOD5,COD,NH3N,TP,TN,CompositeIndex)

select * from

(select c.AreaCode,c.Year,

--c.AreaName,

AVG(c.DO) DO,AVG(c.CODMn) CODMn,AVG(c.BOD5) BOD5,AVG(c.COD) COD,

AVG(c.NH3N) NH3N,AVG(c.TP) TP,AVG(c.TN) TN,AVG(c.CompositeIndex) CompositeIndex

  from

(select a.*,b.Year,b.DO,b.CODMn,b.BOD5,b.COD,b.NH3N,b.TP,b.TN,b.CompositeIndex 

from 

[dbo].[T_Bas_RiverSection] a

join [dbo].[T_Mid_WaterIndexSection] b

on a.SectionCode=b.SectionCode) c

group by c.AreaCode,c.Year) d

--判断数据库中是否存在重复数据,重复数据不插入

where not exists(select  * from T_Mid_WaterIndexArea  w where w.AreaCode=d.AreaCode and w.Year=d.Year)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: