加入收藏 | 设为首页 | 会员中心 | 我要投稿 西双版纳站长网 (https://www.0691zz.com.cn/)- 数据计算、IT业界、服务器、教程、云日志!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 与在MS Access数据库中加入相关的问题

发布时间:2021-01-21 13:15:40 所属栏目:MsSql教程 来源:网络整理
导读:我在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 StudentIdFROM StudentDetails SD LEFT OUT

我在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的值.为什么要求这样做,如何阻止它这样做呢?

解决方法

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语句可以标识所有表源.

(编辑:西双版纳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读