0

大家好……我有一个数据库,其中包含以下内容: 链接到 Employee 表的 Division 表。组表,即课程类别,链接到课程表。这些表通过 Curses_Employee 表链接在一起。到目前为止,我设法提出了一个查询,该查询为我提供了在每个组/类别中参加特定课程的用户数量,如下面的输出表:部门名称| courseName|参加者总数

这是我对上述方案的查询:

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

现在我想添加两列每个部门的员工总数以及下表所示的百分比:groupName | 部门名称| courseName|参与者总数|员工总数|%

我尝试了这个查询,但它给了我一个错误:

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