ms访问查询错误

时间:2011-07-18 15:53:24

标签: ms-access

我正在将我的数据库从SQL Server转换为MS Access。

此查询在SQL Server中正常工作,但在MS-Access中存在语法错误。

这个SQL语句出了什么问题?

select * 
from Students 
left join (select Lessons.StudentID, COUNT(*) as LessonsCount 
           from Lessons 
           group by Lessons.StudentID) as c on c.StudentID = Students.ID  
left join (select Tests.StudentID, count(*) as TestsCount 
           from Tests 
           group by Tests.StudentID) as dd on dd.StudentID = c.StudentID

1 个答案:

答案 0 :(得分:3)

Access SQL需要具有多个连接的括号。处理该问题的自动防故障方法是在查询设计器中设置联接,并让Access添加它想要的括号。

可能看起来像这样:

select * 
from (Students 
left join [select Lessons.StudentID, COUNT(*) as LessonsCount 
           from Lessons 
           group by Lessons.StudentID]. as c on c.StudentID = Students.ID) 
left join [select Tests.StudentID, count(*) as TestsCount 
           from Tests 
           group by Tests.StudentID]. as dd on dd.StudentID = c.StudentID

查询设计器的副作用是它倾向于从此表单转换子查询

(SELECT some_field FROM some_table) AS sub

到此......

[SELECT some_field FROM some_table]. AS sub