-1

我正在尝试编写一个查询,列出经理的姓名和他们管理的人数。

Manager表中,我们有经理nameid

在表中,Employee我们有员工name和。idmanagerID

我不明白如何计算经理管理的员工人数。

4

4 回答 4

2
SELECT COUNT(e.EmpID), m.ManagerID
FROM Employee e
INNER JOIN Manager m 
ON e.ManagerID= m.ManagerID
GROUP BY m.ManagerID
于 2012-09-17T20:33:05.537 回答
0
SELECT m.Name, COUNT(e.id) AS NumberOfEmployeesManaged
FROM Manager m INNER JOIN Employee e ON m.id = e.managerID
GROUP BY m.Name

我认为应该这样做,只是在加入经理和员工表后对员工 ID 进行简单计数,并按经理姓名分组。

于 2012-09-17T20:36:56.447 回答
0
SELECT count(emp.empid), mgr.managerid
FROM Employee emp
INNER JOIN Manager mgr ON emp.managerid=mgr.managerid
GROUP BY mgr.managerid;
于 2012-09-17T20:39:23.087 回答
0

我不知道您是否可以在 JOIN 中使用 COUNT 聚合器。但是您可以运行 2 个查询。一会选择经理的姓名和身份证。第二个看起来像这样:

$id = 经理的 id

SELECT COUNT(*) FROM Employee WHERE managerID=$id

或者,您不能使用 COUNT 并运行如下查询:

SELECT id FROM Employee WHERE managerID=$id

然后生成的行数将是经理管理的员工数。

于 2012-09-17T20:45:40.193 回答