我有一个患者信息表和一个主查找表,患者信息包含值数据,其文本是从mstMasterLookup表中获取的。 以下代码示例在mysql中正常工作,但在访问时导致错误。
任何人都可以就此提出建议。如何在Access
中实现此功能 SELECT
PatientInformations.[Study_Id],
tblHospital.Text_data as Hospital,
tblGender.Text_data as Gender
FROM
PatientInformations
INNER JOIN
(SELECT text_data,Value_data
FROM mstMasterLookup
WHERE mstMasterLookup.Table ='Hospital'
AND Is_Active = true) tblHospital
ON tblHospital.Value_data =cstr( PatientInformations.Hospital_Id)
INNER JOIN (SELECT text_data,Value_data
FROM mstMasterLookup
WHERE mstMasterLookup.Table ='Gender'
AND Is_Active = true) tblGender
ON tblGender.Value_data =cstr( PatientInformations.Gender);
答案 0 :(得分:1)
试试这个
SELECT P.Study_Id,
H.text_data AS Hospital,
G.text_data AS Gender
FROM (PatientInformations AS P
INNER JOIN (SELECT text_data, Value_data
FROM mstMasterLookup
WHERE Is_Active and Table="Hospital") AS H
ON P.Hospital_Id=CSTR(H.Value_data))
INNER JOIN (SELECT text_data, Value_data
FROM mstMasterLookup
WHERE Is_Active AND Table="Gender") AS G
ON P.Gender=CSTR(G.Value_data);
虽然这有效,但在编辑时应该小心,因为Access不理解这种语法,并且不断将括号()更改为[]。
我认为问题在于您没有对表别名使用“AS”子句。