2011-07-18 3 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

、**テキストエディタでこれらの行をハイライト表示し、「コードをクリックしてくださいエディタツールバーの "samples"ボタン( '{}')を使ってきれいに書式を設定し、シンタックスハイライトしてください! –

答えて

2

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 

からサブクエリを変換する傾向があるということである。

それはこのような何かを探して出て来るかもしれませんあなたは、コード、XMLまたはデータサンプルを投稿する場合

[SELECT some_field FROM some_table]. AS sub 
+0

余分は、私はそれを取り出して、それが正常に動作します 「Lessons.StudentIDでグループ」に近い)があります。どうもありがとう 。 – T4mer

+0

私はあなたが何を意味するかを見ます。申し訳ありませんが私はそれに気付かなかった。一定。 – HansUp