UPDATE CHILD_COND
SET S_TRD=
(SELECT S_TRD
FROM
(SELECT MAX(TV.S_TRD) AS S_TRD,
TV.TRADEID AS TRADEID,
TV.TRD_VER AS TRD_VER,
TV.TIMEST AS TIMEST,
TV.SOURCENAME AS SOURCENAME,
STG_TRADE.SP_COND AS SP_COND
FROM MASTER_T TV,
T_STG_TRADE_VERSION STG_TRADE
WHERE TV.SOURCENAME = STG_TRADE.SOURCENAME
AND TV.TRADEID = STG_TRADE.TRADEID
AND TV.TRD_VER = STG_TRADE.TRD_VER
AND TV.TIMEST = STG_TRADE.TIMEST
AND TRADESETID = '91004'
GROUP BY TV.TRADEID,
TV.TRD_VER,
TV.TIMEST,
TV.SOURCENAME,
STG_TRADE.SP_COND
)TRD WHERE CHILD_COND.SP_COND = TRD.SP_COND AND S_TRD IS NOT NULL
)
マスター テーブルの主キーに基づいて、子テーブルの外部キーを更新する必要があります。ただし、子テーブルに値がない場合、すべての子外部キー値が null に更新されます。新しいマスター レコードが MASTER_T に挿入されているが、対応する子レコードが CHILD_COND にない場合、S_TRD は null に設定されています。