0

MS Access データベースで次のクエリを使用しています。

SELECT SD.RollNo, SD.Name , ED.ExamName, (
    SELECT count(*) 
    FROM (
        SELECT DISTINCT innerED.StudentId 
        FROM ExamDetails innerED 
        WHERE innerED.StudentId=SD.StudentId 
    )
) AS StudentId
FROM StudentDetails SD 
LEFT OUTER JOIN ExamDetails ED 
    ON SD.StudentId= ED.StudentId

このクエリを実行するたびに、ダイアログ ボックスが表示され、パラメータ SD.StudentId の値を尋ねられます。なぜこれを求めているのですか?どうすればそれをやめさせることができますか?

4

1 に答える 1

0

MS Access は、Count (*) Aggregate の SELECT ステートメントを認識しません。SQLステートメントにアクセスするには、次のようになります。

 SELECT DISTINCT innerED.StudentId
 FROM ExamDetails innerED 
 WHERE innerED.StudentId=SD.StudentId 

エイリアス AS STUDENTID はステートメントの末尾にあるため、この Select ステートメントはそれを認識せず、.StudendID が何であるかわからず、パラメーターであると見なします。

MS Access では、クエリ自体で識別されていないパラメーターに直面すると、ユーザーに値の入力を求めるプロンプトが表示されます。

この Select ステートメントがすべてのテーブル ソースを識別できるように、クエリを書き直します。

于 2013-02-12T00:55:44.520 に答える