我有一個表table1(account,last_contact_date,insert_date),account和last_contact_date是主鍵。 insert_date是通過調用getdate()來添加recored的時間。我還有一個臨時表#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年9月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,我將插入一個新的。
如何爲此插入寫入查詢?
這實際上可能是最快的方法。另一種方法是執行多個查詢,包括選擇,更新和插入。 –
等待,如果插入日期不同,此方法將會出錯。該錯誤是違反PRIMARY KEY約束。 – GLP
你是對的。我讀錯了pkey。但是,我不是在這裏爲你寫代碼。這個概念站起來。刪除,選擇w /組,然後插入。調整你的分組邏輯,以確保獨特的2-col PKeys –