0

SQL サブクエリの問題に直面しています。サブスクリプションの数 (count(employeeNumber)) がサブスクリプションの最大許容数 (Maximum) より大きいコースを返すクエリを作成する必要があります。

元のクエリでは、次のエラーが表示されます: Group function is not allowed here

クエリ:

SELECT c.CourseName 
FROM courses c 
INNER JOIN subscriptions s ON s.courseCode = c.CourseCode 
INNER JOIN plannedCourses p ON p.CourseCode = s.CourseCode
WHERE COUNT(s.EmployeeNumber) > (SELECT maximum 
                                 FROM plannedCourses 
                                 WHERE s.CourseCode = p.CourseCode);

テーブルのレイアウト:

テーブル レイアウト

どうすれば希望の結果を達成できますか?

前もって感謝します!!

4

2 に答える 2

1

クエリを次のように書き直すことができます。

select c.coursename
  from courses c
  join subscriptions s
    on (s.coursecode = c.coursecode)
  join PlannedCourses p
    on (p.coursecode = c.coursecode)
  group by c.coursename 
         , p.maximum
  having count(s.Employeenumber) > p.maximum 
于 2013-07-25T13:42:56.710 に答える
0

クエリには複数の問題があります。相関サブクエリを使用していますが、そのfrom句でテーブルを使用していません。意図は次のとおりだと思います。

SELECT c.CourseName 
FROM courses c 
INNER JOIN subscriptions s ON s.courseCode = c.CourseCode 
group by c.CourseName, c.CourseCode
having COUNT(s.EmployeeNumber) > (SELECT "maximum"
                                  FROM plannedCourses p
                                  WHERE c.CourseCode = p.CourseCode);
于 2013-07-25T13:24:51.803 に答える