如何避免硬编码尺寸键?

时间:2019-03-04 20:03:20

标签: oracle11g data-warehouse

我已经基于源表的自然键创建了维度的主键。

  

CAST(CONCAT('DIM_',NVL(A.CD1,'TEXT')))||'。'|| A.YEAR AS   VARCHAR(255))

最终,我将使用代理键作为主键。由于我将基于维度的当前主键(DimKey)将事实与维度联接,因此我必须在事实的联接条件中应用类似的逻辑。

尺寸:

CREATE OR REPLACE VIEW DimTable1 
AS
select 
CAST(CONCAT('DIM_', NVL(A.CD1,'TEXT')) || '.'  || A.YEAR AS
VARCHAR(255)) as Year_Key,
Year_CD
from base_table a 

事实:

SELECT
B.Year_Key,
A.Col1,
B.Year_CD
FROM Table1 A 
LEFT JOIN DimTable1 B 
ON CAST(CONCAT('DIM_', NVL(A.CD1,'TEXT')) || '.'  || A.YEAR AS
VARCHAR(255))=B.Year_Key

我想知道是否有什么方法可以避免在事实表的联接中进行硬编码,因为我将更改Dim表以使用代理键。

0 个答案:

没有答案