我正在做一个MySQL家庭作业,我应该做的一件事是
“显示部门代码以及分配给该部门的员工数量。”
我尝试了很多不同的命令,包括下面列出的命令,但我似乎无法根据下表得到正确的结果。
有关如何获取请求的子表的任何想法?我已经给出了下面的相关表格。
感谢。
select code,count(distinct employee)
from (department
left outer join Assignment on department.code = assignment.department);
系
说明|代码|名称|主管|建筑|
++++++++++++++++++++++++++++++++++++++++++++++++++ +++++
“text”| OPR |经营| 77881234 | BlockB |
“文字”| EMM |紧急| 54546677 | BLOCKa中|
“文字”| MDR |病历| 99778525 | BLOCKa中|
ASSIGNMENT
员工|部门| DateAssigned |角色|
++++++++++++++++++++++++++++++++++++++++++++++++++ +
54546677 | EMM | 01/15/2011 |主管|
54546677 | EMM | 2003年2月25日|医生|
77881234 | OPR | 02/15/2010 |主管|
77881234 | OPR | 2000年1月20日|医生|
77881234 | EMM | 02/20/1999 |医生|
答案 0 :(得分:0)
这会给你你想要的。我也添加了部门名称。 GROUP BY子句将按部门对员工进行分组。 这将允许您计算员工数量。
SELECT
(SELECT d.name FROM Department d WHERE d.Code = a.Department) AS DeptName,
a.Code as DeptCode,
COUNT(a.Employee) AS NumberOfEmployees
FROM assignment a
GROUP BY a.Department
答案 1 :(得分:0)
您是否尝试使用group by子句?
答案 2 :(得分:0)
SELECT d.code, COUNT(DISTINCT a.employee) AS employee_count
FROM Department AS d
LEFT JOIN Assignment AS a ON d.code = a.department
GROUP BY d.code
您需要使用GROUP BY
来获取每个部门的计数。