0

みなさん、こんにちは…私は次のデータベースを持っています:EmployeeテーブルにリンクされたDivisionテーブル。コーステーブルにリンクされたグループテーブル、つまりコースカテゴリ。これらのテーブルは、Curses_Employeeテーブルを介してリンクされています。これまでのところ、次の出力テーブルのように、各グループ/カテゴリで特定のコースを受講したユーザーの数を示すクエリを思い付くことができました。DivisionName | コース名|参加者の総数

上記のスキームに対する私のクエリは次のとおりです。

SELECT     dbo.groups.GroupName, dbo.Divisions.DivisionName, dbo.courses.CourseName, COUNT(dbo.employee_courses.courseId) AS [Total Number of Participants]
FROM         dbo.employee AS employee_1 INNER JOIN
                      dbo.Divisions ON employee_1.DivisionCode = dbo.Divisions.SapCode INNER JOIN
                      dbo.employee_courses ON employee_1.Username = dbo.employee_courses.employeeId INNER JOIN
                      dbo.courses ON dbo.employee_courses.courseId = dbo.courses.CourseID INNER JOIN
                      dbo.groups ON dbo.courses.GroupID = dbo.groups.ID
WHERE     (dbo.courses.GroupID = 2)
GROUP BY dbo.courses.CourseID, dbo.courses.CourseName, dbo.Divisions.DivisionName, dbo.groups.GroupName

次に、次の表のように、各部門の従業員の総数と%の2つの列を追加します。DivisionName | コース名|参加者の総数|従業員の総数|%

このクエリを試しましたが、エラーが発生します。

SELECT     dbo.groups.GroupName, dbo.Divisions.DivisionName, dbo.courses.CourseName, COUNT(dbo.employee_courses.courseId) AS [Total Number of Participants],
                          (SELECT     COUNT(Name) AS Expr1
                            FROM          dbo.employee
                            WHERE      (DivisionCode = employee_1.DivisionCode)
                            GROUP BY DivisionCode) AS [Total Number of Employee]
FROM         dbo.employee AS employee_1 INNER JOIN
                      dbo.Divisions ON employee_1.DivisionCode = dbo.Divisions.SapCode INNER JOIN
                      dbo.employee_courses ON employee_1.Username = dbo.employee_courses.employeeId INNER JOIN
                      dbo.courses ON dbo.employee_courses.courseId = dbo.courses.CourseID INNER JOIN
                      dbo.groups ON dbo.courses.GroupID = dbo.groups.ID
WHERE     (dbo.courses.GroupID = 2)
GROUP BY dbo.courses.CourseID, dbo.courses.CourseName, dbo.Divisions.DivisionName, dbo.groups.GroupName

エラーメッセージ:

列'dbo.employee.DivisionCode'は、集計関数またはGROUP BY句のいずれにも含まれていないため、選択リストでは無効です。

4

0 に答える 0