当前位置: 代码迷 >> Sql Server >> 2个相同结构TABLE数据合并有关问题,求解
  详细解决方案

2个相同结构TABLE数据合并有关问题,求解

热度:17   发布时间:2016-04-24 18:39:14.0
2个相同结构TABLE数据合并问题,求解。
有以下2个临时表:#tmp_1 和 #tmp_2 

这2个表要生成一个新的临时表,

规则如下:
EventID, EventQID, BookingNo都相同的情况下,
检查是否EventDate相同,
如果相同,不做任何处理
如果不同,修改#tmp_1.EventDate为#tmp_2.EventDate(可以DELETE后INSERT)

如果#tmp_2中存在新的EventID,将这个INSERT到#tmp_2中

结果如下:


尽量少用循环,求解。谢谢。
(这个例子,BS,UD1不变,BX的EventDate有更新则用#tmp_2的,BF为新的记录)
------解决方案--------------------
--如果不同,修改#tmp_1.EventDate为#tmp_2.EventDate(可以DELETE后INSERT)
update #tmp_1 set EvenDate=(select b.EvenDate from #tmp_1 a,  #tmp_2 b 
where a.EventID=b.EventID and a.EventQID=b.EventQID and a.BookingNo=b.BookingNo
 and a.EventDate!=b.EventDate
)

--如果#tmp_2中存在新的EventID,将这个INSERT到#tmp_2中
select * into #tmp_1 from #tmp_2 a where not exists(
select 1 from #tmp_1 b where b.EventID=a.EventID
)

------解决方案--------------------
INSERT INTO  #tmp_3
SELECT *
FROM #tmp_2
WHERE #tmp_2.EventID NOT IN (SELECT eventid FROM #tmp_1)

是这样吗?所以我问你是不是有问题嘛....
  相关解决方案