2012-12-20 15 views
0

我正在使用MS Access數據庫以下查詢相關:問題在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值。學生卡。爲什麼它要求這樣做,我如何阻止它這樣做?

+0

我不會將計數別名爲studentID,StudentDetails是否包含字段studentid? – Fionnuala

+0

是studentId是StudentDetails的主鍵 –

+0

您是否在子查詢中嘗試使用不同的別名? '(Count ....))作爲StuCount'' – Fionnuala

回答

0

MS Access不理解Count(*)Aggregate上的SELECT語句。訪問SQL語句如下所示。

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

因爲別名STUDENTID來的聲明結束後,該SELECT語句不承認它,所以它不知道什麼.StudendID是則認爲它是一個參數。

MS Access在面對查詢中尚未識別的參數時會提示用戶輸入值。

重寫查詢,以便此Select語句可以標識所有表源。