テーブル tbl1(account, last_contact_date, insert_date) があります。プライマリ キーをアカウントと last_contact_date と定義しました。例えば
account last_contact_date insert_date
0001 09/01/2012 10/01/2012
0001 09/02/2012 10/02/2012
これで、別の一時テーブル #tmp(account, last_contact_date) からの新しいレコードができました。last_contact_date または insert_date に基づいて、条件付きで挿入します。(1) 挿入日が同じ日の場合、最大 last_contact_date でアカウントを更新します。
(0001, 09/01/2012, 10/02/2012) --no
(0001, 09/02/2012, 10/02/2012) --no
(0001, 09/03/2012, 10/02/2012) --update
(2) 挿入日が前日の場合、何もしない (これは決して起こらないことを私は知っている)
(0001, 09/01/2012, 10/01/2012) --no
(0001, 09/02/2012, 10/01/2012) --no
(0001, 09/03/2012, 10/01/2012) --no
(3)挿入日が翌日以降の場合、最大last_contact_dateで新規レコードを挿入します。
(0001, 09/01/2012, 10/03/2012) --no
(0001, 09/02/2012, 10/03/2012) --no
(0001, 09/03/2012, 10/03/2012) --insert
このクエリの書き方を手伝ってくれる人はいますか? 私は本当にアイデアが不足しています。
更新:カーソルを使用して上記のロジックを書くことになります。ありがとう。