php - 每次激活查询时将特定列值减 1

标签 php mysql

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/

相关文章:

PHP - 解析具有多个父级的数组并组合子级

javascript - 在 Google map 上使用本地 MySQL 数据库和 PHP 和 JavaScript

php - PHP 中的严格 HTML 验证和过滤

mysql - 如何在 Xampp 3.2.2(最新版本)中将我的 MySQL 版本升级到 5.7.7 或更高版本,Laravel MySQL 迁移中出现错误

php - 部署到灵活的 PHP App Engine 时访问 Cloud SQL

javascript - 将选择的选项分成几个部分

javascript - 将 php 函数包含到 javascript

mysql - 将自动递增唯一ID添加到mysql?

mysql - 如果值不存在则查找记录?

mysql - 根据表 A 选择的列从表 B 中选择列