我们的工作流程始于员工提交请求。
提交此请求后,员工的ID以及他/她的经理ID,Director的ID和PersonnelManagerID将保存到数据库中。
有一个名为RequestStatus的字段,有三个选项,Pending,Complete或Cancelled。
默认情况下,RequestStatus正在等待。
RequestStatus更改为Complete后,此请求将路由到管理器。
同样,一旦经理的决定处于完成状态,该请求将被发送给执行他/她的部门的董事,并告知人事总监,以便采取最终行动。
这里涉及四个表。
包含employeeID,employeeName,EmployeeUsername和employeePassword以及其他字段名称的员工表。这些是相关的。
有DeptHead表。
此表包含DirectorID,DirectorName以及其他字段。这些是相关领域。
PersonnelManagerID人员
然后是Request表。
这是提交请求的表,它包括employeeID,managerId,DirectorID和requestStatus。
包括经理,总监和人事经理在内的所有员工都在员工的表格中作为empname和Empnum。
员工ID在Request表中保存为empID Manager的员工ID在Request表中保存为ManagerID 董事员工ID在请求表
中保存为DirectorId人事经理employeeID在请求表
中保存为PersonneID如果员工登录,他/她的ReqeustStatus应该是Pending,Complete或Cancelled。
现在,当我以员工身份登录时,即使数据库上没有空值,RequestStatus仍为null。
我需要在下面的查询中更改内容。
select
IsNull(r.mgrid,'NA') mgrid,
IsNULL(r.RequestStatus,'NA') AS RequestStatus,
h.deptname,
isNull(p.DirectorName, 'N') DirectorName,
IsNull(r.DirectorID,'NA') DirectorID,
h.DeptNum deptNumber,
E.DeptNum,
E.Department,
E.EmpName,
E.EmpID,
E.Password,
h.empname as director
from Employee e
LEFT OUTER JOIN DeptHeads h on e.EmpID = h.directorId
LEFT OUTER JOIN Personnel p on e.EmpID = p.EmpID
LEFT JOIN Request r ON r.managerID = e.EmpID OR r.DirectorID = e.EmpID
where e.EmpID = 'myUsername' and e.SSN = 'mypassword' order by e.department asc
感谢您的协助。