基于多个关键字段连接两个表

时间:2014-08-28 16:36:51

标签: sql netezza

您好我有以下情况: 我有一个带有4个Key字段的事实表和一个带有1个关键字段的Dim表,我必须根据所有这些关键字段将事实表连接到昏暗表,以查找某种类型的医生。你能指导我如何去做这件事。感谢。

Provider_Fact: ADMITTINGDoc, ATTENDINGDoc, REFERRINGDoc, TREATINGDoc

Provider_Dim: ID, 名称

1 个答案:

答案 0 :(得分:2)

取决于您希望如何看待它。根据你的问题,我并不完全清楚。也许:

SELECT ad.NAME as AdmittingDocName, 
at.NAME as AttendingDocName, 
re.NAME as ReferringDocName, 
tr.NAME as TreatingDocName
FROM Provider_Fact pf 
JOIN Provider_Dim ad 
    on ad.ID = pf.AdmittingDoc
JOIN Provider_Dim at 
    on ad.ID = pf.AttendingDoc
JOIN Provider_Dim re 
    on ad.ID = pf.ReferringDoc
JOIN Provider_Dim tr 
    on ad.ID = pf.TreatingDoc

OR

    SELECT pd.ID, pd.NAME 
FROM Provider_Fact pf 
JOIN Provider_Dim pd 
    on ad.ID = pf.AdmittingDoc
WHERE name = @name
union
SELECT pd.ID, pd.NAME 
FROM Provider_Fact pf 
JOIN Provider_Dim pd 
    on ad.ID = pf.AttendingDoc
WHERE name = @name
union
SELECT pd.ID, pd.NAME 
FROM Provider_Fact pf 
JOIN Provider_Dim pd 
    on ad.ID = pf.ReferringDoc
WHERE name = @name
union
SELECT pd.ID, pd.NAME 
FROM Provider_Fact pf 
JOIN Provider_Dim pd 
    on ad.ID = pf.TreatingDoc
WHERE name = @name

:)