SQL判断自动添加问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 03:03:22
我在做一个考勤系统,现在想做一个存储过程,就是在每天19点的时候自动执行,先判断签到表有那个用户今天8点-12点,3点到18点没有签到动作,然后添加一条记录,状态是缺勤。 我表的字段分别有(username,department,checkintime,state)就4个,请SQL大师给出存储过程应该怎么写,或者有更好的方法,谢谢了!

应该有个用户表吧

Insert Into 考勤表 (
userId,考勤状态
)
Select userId,'缺勤' from 用户表
Where Not Exists (
Select 1 From 考勤记录表 where userId=用户表.userId And 时间判断
)

应该就可以了吧

不过,我觉得缺勤记录应该是出统计报告的时候算出来而不是添加缺勤记录

这是一个sql触发器,命名为kqxt(考勤系统),假设你的表名为kqb(username,department,checkintime,state),并且假设字段checkintime为数值型。

Create Trigger kqxt
On kqb
for update
AS
begin
if update(username) ---签名
UpDate kqb set state='缺勤' where checkintime not in (8,9,10,11,12) or checkintime not in (15,16,17,18)
end

这个要用到sql里的“作业”功能来做。单纯用存储过程的sql语句是不能实现无限循环的。

打开数据库--管理--SQL Server 代理--作业

之后你再去研究怎么用吧,我就不多说了。

定时作业,参考:
http://hi.baidu.com/wan%5Fshan/blog/item/245d92ae60bd82f2faed5079.html

添加一个定时作业,在19点定时扫描即可

哎。。来晚