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

相关文章

(一)日志传送架构 (1.1)相关服务器 主服务器 :用于生产的服务器,上面运行这生产SQL Server数据库...
(一)事故背景 最近在SQL Server 2012生产数据库上配置完事物复制(发布订阅)后,生产数据库业务出现了...
(一)测试目的 目前公司使用的SQL SERVER 2012高可用环境为主备模式,其中主库可执行读写操作,备库既...
(一)背景个人在使用sql server时,用到了sql server的发布订阅来做主从同步,类似MySQL的异步复制。在...
UNION和OR谓词 找出 product 和 product2 中售价高于 500 的商品的基本信息. select * from product wh...
datawhale组队学习task03