タイプ 2 のディメンションを処理するためのマージ ステートメントがあります。
- ソース表には
source_eff_date
列があります。 - ターゲット テーブルには 2 つの列 (
source_eff_date
およびretired_date
) があります。
例
ソーステーブル
c_id f_name l_name source_eff_date
1 FN1 LN1 04/15/2013
ターゲット テーブル
c_i, f_name l_name source_eff_date retired_date
1 FN1 LN1 04/15/2013 12/12/2099
ソース テーブル
c_id f_name l_name source_eff_date
1 FN1 LN2 05/15/2013
ターゲット テーブル
c_id, f_name,l_name,source_eff_date retired_date
1 FN1 LN1 04/15/2013 05/14/2099
1 FN1 LN2 05/15/2013 12/12/2099
マージステートメントを使用して上記の要件を達成しています。
私が持っている質問は、ソース テーブルのレコードの source_eff_date がターゲット テーブルのレコードよりも古い場合、マージ ステートメント内でログ テーブルにレコードを書き込みたいということです。以下のシナリオを検討してください。
ソース テーブル
c_id f_name l_name source_eff_date
1 FN1 LN2 02/15/2013
ターゲット テーブル
c_id, f_name,l_name, source_eff_date retired_date
1 FN1 LN1 04/15/2013 05/14/2099
1 FN1 LN2 05/15/2013 12/12/2099
このレコードをマージ ステートメント (ログに書き込む) から拒否し、他のレコードのマージを続行したいと思います。私がはっきりしていることを願っています。
どんな助けでも大歓迎です。