表leave_details包含以下列
1.Employee name
2.Employee ID
3.Leavefrom
4.Leaveto
5.Leavetype (Earned leave / sick leave)
6.Leavestatus (Approved/Rejected)
每当员工申请休假时,经理都会批准或拒绝。查询审批
"UPDATE leave_details join managerlogin on managerlogin.manager_id=leave_details.manager_id SET leave_details.leave_status='Approved' where (employee_id='$myemployee_id' and managerlogin.manager_id= '".$_SESSION['mymanager_id']."' )";
这会将leave_status列更改为“已批准”
我有另一个名为员工的表,其中包含员工的总体带薪休假和病假余额。员工表有以下列
1.Employee name
2.Employee ID
3.Earned leave (for example 20)
4.Sick leave (for example 5)
每当他申请休假并且leave_status变为已批准时,带薪休假和病假 员工表中的列应减少 1(例如,如果他申请带薪休假,则该特定员工列值应为减少 1 [此处 20-1=19] ,当他下次申请时 [19-1=18] 这样应该继续)。
怎么做。请帮忙。提前致谢
最佳答案
更新员工表中的休假权利是一个糟糕的设计 - 因为一旦更改,您就无法进一步引用它们是什么;并且没有关于何时采取的时间引用。
因此,我建议将 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>
就可以了。
关于php - 每次激活查询时将特定列值减 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14154022/