2011-07-18 56 views
1

我正在将我的数据库从SQL Server转换为MS Access。ms访问查询错误

此查询在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 
+0

如果您发布代码,XML或数据样本,请**在文本编辑器中突出显示这些行,然后单击“代码(编辑器)工具栏上的“样本”按钮(“{}”),以精确地格式化和语法突出显示它! –

回答

2

访问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 
+0

有一个额外的)附近“由Lessons.StudentID组” 我删除它,它工作正常。非常感谢 。 – T4mer

+0

我明白你的意思了。对不起,我没有注意到它。固定。 – HansUp