私は2つのテーブルTBTC03とTBTC03Yを持っていて、TBTC03Yには2つの余分なカラムがEFFDTEとEXPDTEとしてあります。
TC03データで構築された一致するTC03エントリがTC03Y
に新しいTC03Yレコードを発見されない場合他のテーブルのデータをマージする際の主キー違反
発効日は、 'にデフォルト設定されます:私は、次のロジックでTBTC03YするTBTC03からのデータをマージする必要があります1980' 年1月1日
有効期限は-30-1995' '09にデフォルト設定されます私は同じとしてのクエリを書いた:
insert into TBTC03Y (LOB,MAJPERIL,LOSSCAUSE,NUMERICCL,EFFDTE,EXPDTE)
select LOB,MAJPERIL,LOSSCAUSE,NUMERICCL,'0800101' ,'0950930'
from TBTC03 where not EXISTS (select * from TBTC03Y where
TBTC03Y.LOB = TBTC03.LOB AND
TBTC03Y.MAJPERIL = TBTC03.MAJPERIL AND
TBTC03Y.LOSSCAUSE = TBTC03.LOSSCAUSE AND
TBTC03Y.NUMERICCL = TBTC03.NUMERICCL)
両方の表の主キーはLOB、MAJPERILおよびLOSSCAUSEです。
しかし私はすでに主キーのデータを持っているいくつかのTBTC03Yレコードを持っています。
上記のクエリを実行すると、一部の行で主キー制約が発生します。 私はそれをどのように遂行できるかを理解することができません。
サンプルデータと望ましい結果は、本当にあなたがしたいことを説明するのに役立ちます。 –
Gordonに感謝します。サンプルデータを書いているうちに、私は問題を理解しました。 :D – CHS