我希望看到在维度表中的scd类型2表单中的历史记录,当表中有被视为更新为新值的营销区域的更新时。
我希望在维度表中看到scd类型2形式的历史记录,当被认为要更新到新的value.our的营销区域的表中有更新时,主要目标是根据历史数据保存方法更新记录。
在SCD-2中更新维度表(没有记录-几百条)的算法如下:
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
因此,我希望存储新值,并将旧值设置为标志0。
发布于 2019-02-01 16:20:18
下面是检查条件并制作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;
发布于 2019-03-05 13:42:13
因此,您有您的SCD2表,这是查看它的一种方法:
从一个/多个源表中确定当天(增量)/or完整图像记录的记录.我将使用别名源
在您的SCD2中,您必须过滤加载当天活动的记录(在valid_from和valid_to之间筛选日期)。我将使用别名目标。
源减目标是更改/是新记录,需要在目标中关闭并从源重新打开/打开的记录。
任何人都很难为您的表编写代码,我们不知道您的源代码表PKs、FKs(启用还是禁用?)、列。
https://stackoverflow.com/questions/54481196
复制相似问题