當(dāng)表中有更新時(shí),我想在維度表中查看 scd 類型二形式的歷史記錄,營(yíng)銷區(qū)域被認(rèn)為更新為新值。我想在表中有更新時(shí)在維度表中查看scd類型二形式的歷史記錄,營(yíng)銷區(qū)域被認(rèn)為更新為新值。我們的主要目標(biāo)是根據(jù)歷史數(shù)據(jù)保存更新記錄方法。在 SCD-2 中更新維度表(記錄數(shù)較少 - 幾百條)的算法將是:FOR ALL ROWs in the SOURCE table query LOOP IF ( a corresponding row exists in the DIM TABLE THEN IF data are different THEN 1. UPDATE the ""CURRENT"" row of the DIM TABLE SET EFFECTIVE_TO = NOW ACTIVE_FLAG = 0 (ZERO) 2. INSERT new version into DIM TABLE SET EFFECTIVE_TO = NOW+1 day ahead ACTIVE_FLAG = 1 (ONE)END IF ELSE INSERT new row into DIM TABLE END IF所以我希望存儲(chǔ)新值以及設(shè)置為標(biāo)志 0 的舊值。
2 回答

胡說叔叔
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超8個(gè)贊
下面是檢查條件和制作 SCD-2 的塊。也讓我知道你到底在尋找什么。
BEGIN
LOOP cusrsor
SELECT COUNT(1)
INTO V_COUNT
FROM DIM table_name
WHERE <conditions here key columns and change fields here >
IF V_COUNT = 1 THEN -- update flag and insert new record
UPDATE stmt;
INSERT stmt;
ELSE -- New values to insert
INSERT stmt;
END IF;
END LOOP;
END;
添加回答
舉報(bào)
0/150
提交
取消