CREATE TABLE RecordInfo
(
ID [int] IDENTITY (1, 1) NOT NULL ,
WorkNo [char] (4) NOT NULL , --员工编号
SignTime [DateTime]) NOT NULL --Formate as :2006-5-13 12:05:23
)
CREATE TABLE ShiftInfo --班次主表
(
ShiftID IDENTITY (1, 1) NOT NULL , --班次序号
ShiftName varchar(20) not NULL --班次名称
)
Insert into ShiftInfo(ShiftName) values('行政班次') --早九晚五型的班次(ShiftID=1)
Insert into ShiftInfo(ShiftName) values('灵活班次') --多班倒,多班轮流班次,如三班倒(ShiftID=2),分三条明细表记录
Insert into ShiftInfo(ShiftName) values('按时计薪班次') --按实际的上班时间计工资(ShiftID=3)CREATE TABLE PersonArrange ( --员工班次划分表
[ID] [bigint] IDENTITY (1, 1) NOT NULL ,
[WorkNo] [char] (4) NOT NULL ,
[ShiftID] [int] NOT NULL ,
)CREATE TABLE [dbo].[ShiftsInfo] ( --班次明细表
[SectID] [int] IDENTITY (1, 1) NOT NULL ,
[ShiftID] [char] (4) NOT NULL , --和主表关联
[SectName] [nvarchar] (50) NOT NULL , --明细班段名称
[OnDutyTime] [nvarchar] (50) NOT NULL ,--上班时间,如 08:00
[OnDutyBefore] [int] NOT NULL , --上班提前刷卡时间(分钟数),如30
[OnDutyBack] [int] NOT NULL , --上班推后刷卡时间(分钟数),如30 (在这个范围内刷卡不算迟到)
[OffDutyTime] [nvarchar] (50) NOT NULL ,--下班(同上班)
[OffDutyBefore] [int] NOT NULL ,--下班
[OffDutyBack] [int] NOT NULL , --下班
[SpanDay] [bit] NOT NULL , --是否跨天 0-不跨天,1-跨天
[TimeSum] [int] NOT NULL , --总上班小时数
)问题:按以上各个表统计出每个员工一短时间内的
1、迟到、早退(次数,分钟数),旷工(次数);
2、实际工作小时数(可以为小数);注:员工如果是在灵活班的话,则自动根据刷卡时间来分辨其班次。 揭帖后,回答正确,每人再赠送200分!!!
(
ID [int] IDENTITY (1, 1) NOT NULL ,
WorkNo [char] (4) NOT NULL , --员工编号
SignTime [DateTime]) NOT NULL --Formate as :2006-5-13 12:05:23
)
CREATE TABLE ShiftInfo --班次主表
(
ShiftID IDENTITY (1, 1) NOT NULL , --班次序号
ShiftName varchar(20) not NULL --班次名称
)
Insert into ShiftInfo(ShiftName) values('行政班次') --早九晚五型的班次(ShiftID=1)
Insert into ShiftInfo(ShiftName) values('灵活班次') --多班倒,多班轮流班次,如三班倒(ShiftID=2),分三条明细表记录
Insert into ShiftInfo(ShiftName) values('按时计薪班次') --按实际的上班时间计工资(ShiftID=3)CREATE TABLE PersonArrange ( --员工班次划分表
[ID] [bigint] IDENTITY (1, 1) NOT NULL ,
[WorkNo] [char] (4) NOT NULL ,
[ShiftID] [int] NOT NULL ,
)CREATE TABLE [dbo].[ShiftsInfo] ( --班次明细表
[SectID] [int] IDENTITY (1, 1) NOT NULL ,
[ShiftID] [char] (4) NOT NULL , --和主表关联
[SectName] [nvarchar] (50) NOT NULL , --明细班段名称
[OnDutyTime] [nvarchar] (50) NOT NULL ,--上班时间,如 08:00
[OnDutyBefore] [int] NOT NULL , --上班提前刷卡时间(分钟数),如30
[OnDutyBack] [int] NOT NULL , --上班推后刷卡时间(分钟数),如30 (在这个范围内刷卡不算迟到)
[OffDutyTime] [nvarchar] (50) NOT NULL ,--下班(同上班)
[OffDutyBefore] [int] NOT NULL ,--下班
[OffDutyBack] [int] NOT NULL , --下班
[SpanDay] [bit] NOT NULL , --是否跨天 0-不跨天,1-跨天
[TimeSum] [int] NOT NULL , --总上班小时数
)问题:按以上各个表统计出每个员工一短时间内的
1、迟到、早退(次数,分钟数),旷工(次数);
2、实际工作小时数(可以为小数);注:员工如果是在灵活班的话,则自动根据刷卡时间来分辨其班次。 揭帖后,回答正确,每人再赠送200分!!!
解决方案 »
- MEMO控件我每插一行数据它就刷新一次。。能不能我插完了才才刷新。。
- 散分,方便的话请投我女儿一票吧
- y=in(8),请问y等于多少?忘了。。。
- 急!请教各位大侠,在ttable控件中有一个属性是indexfieldnames,这个属性里设的值是起什么作用的,和实际数据库中表的index有什么关系吗
- 多功能文本框,help,help???
- 十万火急、十万火急!dbgrideh1 焦点移出时,值也消失了!!
- 关于BDE administrator的一个问题,请各位大侠指点
- 刷新初始化窗体
- 请教个解决方法
- delphi可以用来编写比较底层的程序吗?
- 请推荐一个条码打印控件,我用的是zebra打印机
- {急 急}{急 急} idhttp问题,维持会话! [急 急]
12:00下班,10:00打卡算早退还是旷工?
或者更牛B一点,上午就10:00打了一次卡,这算迟到还是早退还是旷工还是没有打卡?偶原来写过这些东西,把结果得到的算法用SQL语句整整写了2000行,得用3个存储过程才算完。至于统计迟到早退,结果都得到了统计个次数出来还不简单。