【发布时间】:2020-06-19 07:27:06
【问题描述】:
我是 Oracle 新手。
我有 2 个表被调用。
dwh_tbl_dim_supplier_type2_ar(目标表)
stg_tbl_dim_supplier_ar(源表)
dwh_tbl_dim_supplier_type2_ar 包含六列
SUPPLIER_KEY (PK)
SUPPLIER_CODE
SUPPLIER_NAME
SUPPLIER_STATE
START_DATE
END_DATE
stg_tbl_dim_supplier_ar 包含三列
SUPPLIER_KEY (PK)
SUPPLIER_NAME
SUPPLIER_STATE
在源表中我已经有一条记录 SUPPLIER_KEY = 001, SUPPLIER_NAME = Phlogistical Supply Company, SUPPLIER_STATE = IL
在目标表中我已经有一个数据 SUPPLIER_KEY = 001 SUPPLIER_CODE = 001 SUPPLIER_NAME = Phlogistical Supply Company SUPPLIER STATE = CA START_DATE = 2000-01-01 END_DATE = 9999-12-31
从这些表中,SUPPLIER_STATE 列存在差异。我的任务是使用 SCD 类型 2 使用 SOURCE TABLE 中的数据更新 TARGET TABLE。此方法通过创建多个记录来跟踪历史数据。此外,目标表的 start_date 和 end_date 列中的结果必须使用不带时间的日期格式(例如:2020-06-18)如何使用 SQL MERGE 或 Oracle 上的其他查询执行此任务?谁能用 Query 一步一步地解释我?您可以查看下图以了解它的外观。
任何帮助将不胜感激。
谢谢。
【问题讨论】:
标签: sql database oracle data-warehouse scd