有以下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)
是这样吗?所以我问你是不是有问题嘛....