在MS SQL中,我有员工和部门表。我需要重新构建表格,以便我分配部门经理。
以下是现有表格:
Employee
---------
emp_id
emp_name
emp_email
Dept_id
Departments
-----------
Dept_id
Dept_name
我的规则如下:
我需要添加哪些新字段和约束?
据我所知,知道经理是雇员。 我可以使用什么SQL查询来列出所有部门的部门名称,经理姓名,经理人员 - 分机号码,经理 - 电子邮件?
由于
答案 0 :(得分:0)
您可以添加第三个表格:
DepartmentManagers
-----------
Dept_id
emp_id
当然,如果你想要那些数据(扩展名等),你还必须将你提到的那些其他字段添加到Employee表中,如果你不需要它,你还需要添加到DepartmentManagers表中。经理。部门名称在逻辑上属于当时你可以用(pseudoSQL):
之类的东西查询它SELECT E.emp_name, E.email, E.extension, E.email, D.Dept_name FROM EMPLOYEE E, DEPARTMENTS D, DEPARTMENTMANAGERS M WHERE E.emp_id = M.emp_id AND D.Dept_id = M.Dept_id
另一种选择是将“IsManager”字段添加到Employee表中;在这种情况下,你不需要第三个表。
然后查询会更像(pseudoSQL,特别是因为可能没有boolen类型;您可能必须使用1而不是TRUE):
SELECT E.emp_name, E.email, E.extension, E.email, D.Dept_name FROM EMPLOYEE E, Departments D WHERE E.Dept_id = D.Dept_id AND E.IsManager = TRUE