首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每次激活查询时,将特定列值减1。

每次激活查询时,将特定列值减1。
EN

Stack Overflow用户
提问于 2013-01-04 09:03:18
回答 1查看 160关注 0票数 0

leave_details包含以下列

1.雇员姓名 2.雇员身份证 3.Leavefrom 4.Leaveto 5.Leavetype (带薪假/病假) 6.Leavestatus (Approved/Rejected)

当员工申请休假时,经理会批准或拒绝。质疑批准

“在managerlogin.manager_id=leave_details.manager_id上更新leave_details连接管理器登录设置leave_details_SESSION.leave_status=‘leave_details_id=’$myemployee_id‘和managerlogin.manager_id=’”.$_leave_details‘’mymanager_id‘.“’‘”;

这将将leave_status列更改为“已批准的”

我有另一张表,名为 employee ,它包含员工的总体、挣来的假期、病假余额。Employee表具有下列列

1.雇员姓名 2.雇员身份证 3.带薪假(例如20) 4.病假(例如5)

当他申请休假时,当leave_status成为批准的时,则employee表中的挣假病假列应减少1E 233(例如,如果他申请E 134带薪休假<>E 235,那么特定员工的列值应该是E 136在这里减少1E 237 20-1=19,当他申请下一次19-1=18时,就像它应该继续一样)。

怎么做。请帮帮忙。提前感谢

EN

回答 1

Stack Overflow用户

发布于 2013-01-04 09:12:33

更新雇员表中的休假权利是一个错误的设计--因为一旦更改,您就没有关于它们是什么的进一步引用;也没有关于何时使用的临时引用。

因此,我建议将leave_details表状态中的记录更改为“已取”,然后计算从leave_details表中提取的天数,以确定剩余休假天数,例如,查找2011年休假天数

代码语言:javascript
复制
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'

但是,如果必须更新employee表;

代码语言:javascript
复制
UPDATE Employee SET EarnedLeave = EarnedLeave - 1 WHERE EmployeeID = <Id>

会成功的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14154022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档