0

こんにちは、患者情報テーブルとマスター ルックアップ テーブルがあります。患者情報には値データが含まれ、そのテキストは 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);
4

1 に答える 1

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」句を使用しなかったことだと思います。

于 2013-06-25T11:09:15.823 に答える