2013-03-11 34 views
1

我使用以下查询:输出错误与SQL

+0

这肯定是一个家庭作业的问题:) – Saju 2013-03-11 22:34:46

+0

这将帮助我们回答你的问题,如果你定义究竟是什么错了你的输出,你会想到什么,你实际上得到。 – beny23 2013-03-11 22:34:49

+0

@Sjuju作业与否与问题无关。这里主要的问题是关闭这个问题,因为它不清楚用户想要什么,我们不在这里做出假设 – 2013-03-11 22:36:00

回答

2

下面的查询不完全测试,因为有没有提供采样数据。

SELECT d.LecturerID, d.Name, 
     c.CourseID, c.CourseName, 
     a.Semester, 
     a.percentageOfStudent 
FROM 
     (
      SELECT CourseID, 
        Semester, 
        SUM(CASE WHEN grade >= 6 THEN 1 ELSE 0 END) * 1.0/COUNT(*) * 100.0 percentageOfStudent 
      FROM Exam 
      GROUP BY CourseID, Semester 
      HAVING SUM(CASE WHEN grade >= 6 THEN 1 ELSE 0 END) * 1.0/COUNT(*) * 100.0 < 50 
     ) a 
     INNER JOIN Lecture b 
      ON a.CourseID = b.CourseID AND 
       a.Semester = b.Semester 
     INNER JOIN Course c 
      ON b.CourseID = c.CourseID 
     INNER JOIN Lecturer d 
      ON b.LecturerID = d.LecturerID 
+0

感谢您的帮助,但它说:查询错误:没有这样的列:c.Semester无法执行语句 – user2158447 2013-03-11 23:11:20

+0

再试一次,错误被抛出的原因是我按学期加入'讲座'和'课程'。 – 2013-03-11 23:16:32

+0

非常感谢,非常感谢! – user2158447 2013-03-11 23:25:38