您好我有以下情况: 我有一个带有4个Key字段的事实表和一个带有1个关键字段的Dim表,我必须根据所有这些关键字段将事实表连接到昏暗表,以查找某种类型的医生。你能指导我如何去做这件事。感谢。
Provider_Fact: ADMITTINGDoc, ATTENDINGDoc, REFERRINGDoc, TREATINGDoc
Provider_Dim: ID, 名称
答案 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
:)