将结果集插入到另一张表,且数据必须有条件的不重复
在mssql中,使用sql查询到满足条件的一个结果集,然后插入到A表中,A表中可能存在与这个结果集相似的数据。
结果集:
MeterNo	   ReType	FaultTime	   Remark	UploadTime	StreetNo	PoleNo	IsTreate
20100011	0	2013-04-03 		2013-04-03 	0005	0011	    0
20100016	0	2013-04-03		2013-04-03 	0005	0016	    0
20100008	0	2013-04-03 		2013-04-03 	0001	0002	    0
20100012	0	2013-04-03 		2013-04-03 	0005	0012	    0
20100013	0	2013-04-03 		2013-04-03 	0005	0013	    0
20100010	0	2013-04-03 		2013-04-03	0005	0010	    0
插入A表的条件:如果A表中存在 20200011 这条数据,那么就检查下IsTreate是否等于0,如果等于0,则不插入,如果不等于0,则插入。
如果A表中不存在20200011这条数据,那么直接插入
这些动作实在存储中完成的,用程序一条一条的查询验证就算了。
              
                  sql
              
------解决方案--------------------INSERT INTO A
SELECT * FROM 原表 WHERE MeterNo NOT IN(SELECT MeterNo FROM A WHERE IsTreate=0)
------解决方案--------------------insert into tbA
selectc * from #t t where not exists(select 1 from tbA where t.MeterNo=MeterNo)
or exists (select 1 from tbA where t.MeterNo=MeterNo and IsTreate<>0)
------解决方案--------------------insert into T1 --结构T1/T2表相同时可不指定列
select * 
from T2 as a 
where not exists(select 1 from T1 where MeterNo=a.MeterNo or (MeterNo=a.MeterNo and IsTreate=0))