表 leave_details 包含以下列
1.员工姓名
2.员工ID
3.Leavefrom
4.Leaveto
5.Leavetype (获休假/病假)
6.Leavestatus (已批准/已拒绝)
每当员工申请休假时,经理都会批准或拒绝。查询审批
“UPDATE leave_details join managerlogin on managerlogin.manager_id = leave_details.manager_id SET leave_details.leave_status ='Approved'where where(employee_id ='$ myemployee_id'and managerlogin.manager_id ='”。$ _ SESSION ['mymanager_id']。“' )“;
这会将 leave_status 列更改为“已批准”
我还有一个名为员工的表格,其中包含员工的总体获得休假和病假余额。 Employee表包含以下列
1.员工姓名
2.员工ID
3.Earned leave(例如20)
4.Sick leave(例如5)
当他申请休假时,当 leave_status 变为批准时,获得休假和病假 员工表中的列应减少1 (例如,如果他申请获得休假,则该特定员工列值应为减少1 [此处为20-1 = 19],当他申请下一次[19-1 = 18],就像它应该继续)。
怎么做。请帮忙。提前致谢
答案 0 :(得分:2)
更新员工表中的休假权利是一个糟糕的设计 - 因为一旦改变,你就没有进一步的参考资料了;并没有时间参考。
因此,我建议将leave_details
表状态中的记录更改为 - 然后计算从leave_details表中获取的天数,以确定剩余的休假天数,例如查找2011年休假天数
select sum(datediff(leaveto,leavefrom)) as days_leave_taken
from leave_details
where employeeid = 1000
and leavefrom between '2011-01-01' and '2011-12-31 23:59'
但是,如果您必须更新员工表;
UPDATE Employee SET EarnedLeave = EarnedLeave - 1 WHERE EmployeeID = <Id>
会做到这一点。