2013-07-12 82 views
0

我是个新手。这可能是一个简单的解决方法。“where”附近的SQL语法错误

查询:

select AvgR.preavgMR - AvgR.postavgMR 
from (
    ((select R.mID mID, avg(R.stars) preavgMR from Rating R group by R.mID) 
    join Movie M using (mID) 
    where year < 1980 
    ) 
    join  
    ((select R.mID mID, avg(R.stars) postavgMR from Rating R group by R.mID) 
    join Movie M using (mID) 
    where year >= 1980 
    ) 
) AvgR using (mID); 

结果:

Query failed to execute: near "where": syntax error 

/建议的想法?谢谢!

回答

0

试试这个方法:

select AvgR.preavgMR - AvgR.postavgMR 
from (
    ( 
     select mID,preavgMR 
     from (select R.mID mID, avg(R.stars) preavgMR from Rating R group by R.mID) T1 
     join Movie M using (mID) 
     where year < 1980 
    ) 
    join  
    (
     select mID,postavgMR 
     from (select R.mID mID, avg(R.stars) postavgMR from Rating R group by R.mID) T2 
    join Movie M using (mID) 
    where year >= 1980 
    ) 
) AvgR; 
+0

曾为 - 刚刚到使用条款移动去年的括号内。谢谢! – user2575851

+0

@ user2575851别忘了你也可以为答案投票;) – Parado