我有一个表 table1 (account, last_contact_date, insert_date),account 和 last_contact_date 是主键。insert_date 通过调用 getdate() 设置为添加记录的时间。我还有一个临时表 #temp(account, last_contact_date) 用于更新 table1。
以下是样本数据:
table1
account last_contact_date insert_date
1 2012-09-01 2012-09-28
2 2012-09-01 2012-09-28
3 2012-09-01 2012-09-28
#temp
account last_contact_date
1 2012-09-27
2 2012-09-27
3 2012-08-01
结果表取决于插入日期。如果日期是 2012-09-28,结果将是
table1
account last_contact_date insert_date
1 2012-09-27 2012-09-28
2 2012-09-27 2012-09-28
3 2012-09-01 2012-09-28
如果日期是 2012-09-29,结果将是
table1
account last_contact_date insert_date
1 2012-09-01 2012-09-28
2 2012-09-01 2012-09-28
3 2012-09-01 2012-09-28
1 2012-09-27 2012-09-29
2 2012-09-27 2012-09-29
基本上规则是(1)如果插入日期是同一天,我将选择最新的 last_contact_date,否则,(2)如果 last_contact_date 晚于当前的 last_contact_date,我将插入一个新的。
如何为此插入编写查询?