我有一种情况,其中一个表添加了一个新列。我必须通过连接另一个表来更新此表以填充此新列。
我正在尝试使用以下内容,但我不确定如何表现。
UPDATE A
FROM MPTR.ACCS_METH_EVENT A,
(
SELECT EVENT_ID,DATA_SOURCE_TYPE_CD FROM
MPTR.EVENT
WHERE DATA_SOURCE_TYPE_CD IS NOT NULL
AND EVENT_START_DT<DATE+1
GROUP BY 1,2
) B
SET DATA_SOURCE_TYPE_CD=B.DATA_SOURCE_TYPE_CD
WHERE A.EVENT_ID=B.EVENT_ID
AND A.DATA_SOURCE_TYPE_CD IS NULL ;
事件表在event_start_dt上创建了分区。
这种情况下最好的方法是什么?
我尝试了类似的东西,但由于TDWM过滤器违规错误即将发生,它失败了。我在这里使用了分区列,但仍然收到错误。
MERGE MPTR.ACCS_METH_EVENT as Target1
USING MPTR.EVENT as source1
ON Target1.EVENT_ID = source1.EVENT_ID and source1.event_start_dt< date
WHEN MATCHED
THEN
UPDATE SET DATA_SOURCE_TYPE_CD=source1.DATA_SOURCE_TYPE_CD