考勤系统数据库是什么
答案:2 悬赏:40
解决时间 2021-03-09 17:52
- 提问者网友:追忆成伤
- 2021-03-08 19:51
考勤系统数据库是什么
最佳答案
- 二级知识专家网友:情战凌云蔡小葵
- 2021-03-08 20:21
是存放员工信息,考勤设置及考勤打卡数据的仓库。
全部回答
- 1楼网友:花一样艳美的陌生人
- 2021-03-08 20:35
不考虑加班,请假,外出之类。
原始记录表:
1:工作日历表calendar
2:排班表worktime
3:人事资料表employee
4:异常类别表(迟到,早退,无刷卡...)abnormity
5:考勤记录表timecard
处理结果表:(能用表或视图的形式存放)
1: 打卡异常 10001 20031102 上午上班 迟到
2:考勤明细表1: 10001 20031101 07:55/12:01/12:02/13:55/18:00/18:01 列出所有打卡明细
3:考勤明细表2: 10001 20031101 07:55 12:01 13:55 18:00
create table calendar(
date smalldatetime primary key clustered,
flag1 bit,
flag2 bit,
flag3 bit
)
exec sp_addextendedproperty nms_description, n日期, nuser, ndbo, ntable, ncalendar, ncolumn, ndate
exec sp_addextendedproperty nms_description, n是否上班1, nuser, ndbo, ntable, ncalendar, ncolumn, nflag1
exec sp_addextendedproperty nms_description, n是否上班2, nuser, ndbo, ntable, ncalendar, ncolumn, nflag2
exec sp_addextendedproperty nms_description, n是否上班3, nuser, ndbo, ntable, ncalendar, ncolumn, nflag3
create procedure addworkcalendar @bdate smalldatetime,@edate smalldatetime
as
declare @cdate smalldatetime
declare @flag1 bit
declare @flag2 bit
declare @flag3 bit
set @cdate = @bdate
if exists (select * from calendar where cld_rq between @bdate and @edate)
begin
raiserror(已有该范围的资料,请核对开始日期和结束日期!!!,16,-1)
return
end
while @cdate <= @edate
begin
set @flag1 = (case when datepart(weekday,@cdate) in (1,7) then 0 else 1 end)
set @flag2 = (case when datepart(weekday,@cdate)=1 then 0 else 1 end)
set @flag3 = 1
insert calendar values(@cdate,@flag,@flag1,@flag2)
set @cdate = dateadd(day,1,@cdate)
end
/*************
当然,更灵活的方法是如下方式建表:
日期 方式 标志
200
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯