當前位置:首頁 » 編程語言 » sql怎麼簽到
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql怎麼簽到

發布時間: 2023-05-02 03:10:32

㈠ 一個sql語句的問題

弱弱的問一句,什麼資料庫
再一個,你把各個時間點也給一下,譬如早8點算正常上班,這種信息你也該給出來的,順便給你點提示

這種東西按一對一對來算,譬如上午簽到和簽退算一對,那麼如果簽到時間>8點或簽退時間<11點則算曠工半天,所以不能考慮除以4的情況

還是先把什麼資料庫弄出來吧,要不時間函數都不一樣,不太好弄,還有最好列舉幾條數據

---補充---
id,編號 signTime,簽到時間 signDate,簽到日期 signNum,簽到次序 username,簽到人 signState,簽到狀態

create table test (id int,
signTime varchar(8),
signDate varchar(10),
signNum int,
username varchar(20),
signState varchar(4));

insert into test values (1,'08:00:00', '2010-08-07',1,'張三','A');
insert into test values (1,'11:30:00', '2010-08-07',2,'張三','A');
insert into test values (1,'13:00:00', '2010-08-07',3,'張三','A');
insert into test values (1,'17:00:00', '2010-08-07',4,'張三','A');
insert into test values (1,'08:00:00', '2010-08-08',1,'張三','A');
insert into test values (1,'11:30:00', '2010-08-08',2,'張三','A');
insert into test values (1,'13:00:00', '2010-08-08',3,'張三','A');
insert into test values (1,'16:00:00', '2010-08-08',4,'張三','A');
insert into test values (1,'07:00:00', '2010-08-07',1,'李四','A');
insert into test values (1,'10:30:00', '2010-08-07',2,'李四','A');
insert into test values (1,'14:00:00', '2010-08-07',3,'李四','A');
insert into test values (1,'17:00:00', '2010-08-07',4,'李四','A');
insert into test values (1,'08:00:00', '2010-08-08',1,'李四','A');
insert into test values (1,'12:00:00', '2010-08-08',2,'李四','A');
insert into test values (1,'13:00:00', '2010-08-08',3,'李四','A');
insert into test values (1,'17:00:00', '2010-08-08',4,'李四','A');
insert into test values (1,'08:00:00', '2010-08-08',1,'王五','A');
insert into test values (1,'12:00:00', '2010-08-08',2,'王五','A');
insert into test values (1,'13:00:00', '2010-08-08',3,'王五','A');

select username,(morning+afternoon) 出勤天數 from
(select f.username username,sum(case when f.morning_sb=1 and f.morning_xb=1 then 0.5 else 0 end) morning,
sum(case when f.afternoon_sb=1 and f.afternoon_xb=1 then 0.5 else 0 end) afternoon
from
(select a.signDate signDate,a.username username,
case when b.morning_sb =1 then 1 else 0 end morning_sb ,
case when c.morning_xb =1 then 1 else 0 end morning_xb,
case when d.afternoon_sb =1 then 1 else 0 end afternoon_sb,
case when e.afternoon_xb =1 then 1 else 0 end afternoon_xb
from
(select a.signDate signDate,b.username username from
(select distinct signDate signDate from test where signdate between '2010-08-07' and '2010-08-08' ) a,
(select distinct username username from test) b) a
left join
(select signDate,username,case when signTime between '06:00:00' and '08:00:00' then 1 else 0 end morning_sb from test where signNum=1 and signDate between '2010-08-07' and '2010-08-08') b
on a.signDate=b.signDate
and a.username=b.username
left join
(select signDate,username,case when signTime between '11:00:00' and '13:00:00' then 1 else 0 end morning_xb from test where signNum=2 and signDate between '2010-08-07' and '2010-08-08') c
on b.signDate=c.signDate
and b.username=c.username
left join
(select signDate,username,case when signTime between '11:00:00' and '13:00:00' then 1 else 0 end afternoon_sb from test where signNum=3 and signDate between '2010-08-07' and '2010-08-08') d
on b.signDate=d.signDate
and b.username=d.username
left join
(select signDate,username,case when signTime between '17:00:00' and '23:59:59' then 1 else 0 end afternoon_xb from test where signNum=4 and signDate between '2010-08-07' and '2010-08-08') e
on b.signDate=e.signDate
and b.username=e.username) f
group by f.username) g

大概基本所有情況都考慮進去了,不懂的HI我吧,寫了很多,加測試大概用了一個小時

我算的是早8點-11點是上班時間,下午13點-17點是上班時間,可能有的地方寫的不對,你湊合看吧,估計看起來很累

-------------補充--------------
你都沒仔細看我寫的這堆吧?
其實都差不多,只要你改其中幾個地方就OK了
1,咱倆時間格式不一樣,我是2010-08-29,你是2010-8-29,時間我精確到了秒,你精確到了分鍾
2,運行過程中,我沒考慮最後的狀態,因為靠時間點就能來判斷是遲到或早退了

㈡ SQL2000資料庫問題,現在有兩張表,一張員工表和一張每日簽到表,能不能建立一個觸發器

這個需要建一個存儲過程和一個資料庫作業和一個返回隨機時間段的函數才能實現
如果有A表(員工),sUserCode,B表(簽到表),sUserCode,dtSignInDate
-- 返回隨機時間段的函數
Create Function RandDateTime(@RandNum Decimal(38,18),@StartTime DateTime,@EndTime DateTime)
Returns DateTime
As
Begin
Declare @HourDiff Decimal(38,18)--兩個時間之間的小時差值
Declare @MinutePartDiff Decimal(38,18)--分鍾部分的差值
Declare @SecondPartDiff Decimal(38,18)--秒部分的差值
Declare @MsPartDiff Decimal(38,18)--毫秒部分的差值
Declare @SmallDate DateTime
Declare @BigDate DateTime
Declare @ReturnDateTime DateTime

/*取各部分差值*/
Set @MsPartDiff = Abs(Convert(Decimal(38,18),DatePart(ms,@EndTime)-DatePart(ms,@StartTime)))
Set @SecondPartDiff = Abs(Convert(Decimal(38,18),DatePart(s,@EndTime)-DatePart(s,@StartTime)))
Set @MinutePartDiff = Abs(Convert(Decimal(38,18),DatePart(mi,@EndTime)-DatePart(mi,@StartTime)))
Set @HourDiff = DateDiff(hh,@StartTime,@EndTime)
Set @SmallDate = @StartTime
Set @BigDate = @EndTime
If @HourDiff <0
Begin
Set @SmallDate = @EndTime
Set @BigDate = @StartTime
Set @HourDiff = -@HourDiff
End

ActionLable:
Declare @HourDecimal Decimal(38,18)--小時的小數部分
Declare @HourString varchar(200)
Set @HourDiff = @HourDiff * @RandNum
Set @HourString = CONVERT(VARCHAR(200),@HourDiff)
Set @HourString = SubString(@HourString,CharIndex('.',@HourString)+1,Len(@HourString))
Set @HourString = '0.' + @HourString
Set @HourDecimal = Convert(Decimal(38,18),@HourString)
Set @MsPartDiff = (@MsPartDiff + @SecondPartDiff * 1000 + @MinutePartDiff*1000*60 + @HourDecimal * 3600*1000) * @RandNum
Set @ReturnDateTime = DateAdd(hh,@HourDiff,@SmallDate)
Set @ReturnDateTime = DateAdd(ms,@MsPartDiff,@ReturnDateTime)
Return @ReturnDateTime
End

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

-- 自動簽到存儲過程
Create procere p_AutoSignIn
begin
-- @startdate 打卡開始時間
-- @enddate 打卡結束時間
declare @startDate datetime
declare @enddate datetime
set @startDate=getdate()
set @endDate=dateadd(n,[20],@startDate) 可以換成自己需要的時間差值
-- a表示0-1 之間的隨機數值,可用小數
insert into B(sUserCode,dtSignInDate)
select sUserCode,RandDatetime (a,@startdate,@enddate) from A
end

-- 創建計劃作業
企業管理器
--管理
--SQL Server代理
--右鍵作業
--新建作業
--"常規"項中輸入作業名稱
--"步驟"項
--新建
--"步驟名"中輸入步驟名
--"類型"中選擇"Transact-SQL 腳本(TSQL)"
--"資料庫"選擇執行命令的資料庫
--"命令"中輸入要執行的語句:
update base set flag=0 where datediff(dd,date,getdate())=0

--確定
--"調度"項
--新建調度
--"名稱"中輸入調度名稱
--"調度類型"中選擇你的作業執行安排
--如果選擇"反復出現"
--點"更改"來設置你的時間安排為一天一次

然後將SQL Agent服務啟動,並設置為自動啟動,否則你的作業不會被執行

設置方法:
我的電腦--控制面板--管理工具--服務--右鍵 SQLSERVERAGENT--屬性--啟動類型--選擇"自動啟動"--確定.

㈢ SQL考勤的問題,目前考勤只能查到每天簽到簽退的成員,寫什麼語句能查到沒有簽到簽退的成員

從全體名單里篩除簽到的成員即可。
select * from 全體成員表 where 成員 not in (select 成員 from 簽到簽退表)

㈣ sql中怎麼統計工作日出勤情況

1.你還得有張日期表,規定一年365天哪天是周末,哪天是節假日,也就是日期類型(其實就是日歷)
2.出勤表中日期和日期表中的日期連接根據日期類型就知道哪天是節假日哪天是正常上班時間了
3.曠工天數應該就是出勤表中上班簽到時間或者下班簽到時間為空的話就算曠工了
4.休息日加班天數就是出勤表和日期表連接,日期類型是休息日,並且上班簽到和下班簽到時間都不為空了
總之,有張日期表什麼都能檢索出來了

㈤ 考勤軟體Att2007 和sql2000 如何實現遠程考勤

將這段導入數據,並做好與sql的連孝空接

use kaoqin
--員工考勤記錄修改日誌
CREATE TABLE CHECKEXACT (
EXACTID INT IDENTITY(1,1) NOT NULL , --修改日絕賣志ID
USERID INT NULL DEFAULT 0, --員工ID號
CHECKTIME DATETIME NULL DEFAULT 0, --簽到/巧宏瞎簽退時間
CHECKTYPE VARCHAR (2) NULL DEFAULT 0, --原來的簽到/簽退標志:I-簽到,O-簽退
ISADD SMALLINT NULL DEFAULT 0, --是否新增的記錄
YUYIN VARCHAR (25) NULL , --修改考勤記錄的原因
ISMODIFY SMALLINT NULL DEFAULT 0, --是否僅僅是修改原始記錄
ISDELETE SMALLINT NULL DEFAULT 0, --是否是刪除的記錄
INCOUNT SMALLINT NULL DEFAULT 0, --是否恢復
ISCOUNT SMALLINT NULL DEFAULT 0, --
MODIFYBY VARCHAR (20) NULL, --操作員
[DATE] DATETIME NULL, --操作時間
CONSTRAINT EXACTID PRIMARY KEY (EXACTID)
)
;

--簽到/簽退記錄表
CREATE TABLE CHECKINOUT (
USERID INT NOT NULL , --員工ID號
CHECKTIME DATETIME NOT NULL DEFAULT GETDATE(), --簽到/簽退時間
CHECKTYPE VARCHAR (1) NULL DEFAULT 'I', --簽到/簽退標志:I-簽到,O-簽退
VERIFYCODE INT NULL DEFAULT 0, --驗證方式:除256的余數表示簽到的方式: 0-指紋;1-輸號碼;2-密碼。大於256表示該記錄已經被確認,在於處理時不進行處理
SENSORID VARCHAR (5) NULL, --採集數據的考勤終端/設備ID
CONSTRAINT USERCHECKTIME PRIMARY KEY (USERID, CHECKTIME)
)
;

--部門表
CREATE TABLE DEPARTMENTS (
DEPTID INT IDENTITY(1,1) NOT NULL , --部門ID
DEPTNAME VARCHAR (30) NULL , --部門名稱
SUPDEPTID INT NOT NULL DEFAULT 1, --上級部門的ID
CONSTRAINT DEPTID PRIMARY KEY (DEPTID)
)
;

CREATE TABLE EXCNOTES (
USERID INT NULL ,
ATTDATE DATETIME NULL ,
NOTES VARCHAR (200) NULL
)
;

--節假日表
CREATE TABLE HOLIDAYS (
HOLIDAYID INT IDENTITY(1,1) NOT NULL ,
HOLIDAYNAME VARCHAR (20) NULL ,
HOLIDAYYEAR SMALLINT NULL ,
HOLIDAYMONTH SMALLINT NULL ,
HOLIDAYDAY SMALLINT NULL DEFAULT 1,
STARTTIME DATETIME NULL ,
DURATION SMALLINT NULL ,
HOLIDAYTYPE SMALLINT NULL ,
XINBIE VARCHAR (4) NULL ,
MINZU VARCHAR (50) NULL,
CONSTRAINT HOLID PRIMARY KEY (HOLIDAYID)
)
;

--班次表
CREATE TABLE NUM_RUN (
NUM_RUNID INT IDENTITY(1,1) NOT NULL , --班次ID號
OLDID INT NULL DEFAULT -1, --
NAME VARCHAR (30) NOT NULL , --班次名稱
STARTDATE DATETIME NULL DEFAULT '2000-1-1', --起用日期
ENDDATE DATETIME NULL DEFAULT '2099-12-31', --結束使用日期
CYLE SMALLINT NULL DEFAULT 1, --班次一次循環的周期
UNITS SMALLINT NULL DEFAULT 1, --周期單位
CONSTRAINT NUMID PRIMARY KEY (NUM_RUNID)
)
;

--班次排班時段表
CREATE TABLE NUM_RUN_DEIL (
NUM_RUNID SMALLINT NOT NULL , --班次的ID號
STARTTIME DATETIME NOT NULL , --開始時間
ENDTIME DATETIME NULL , --結束時間
SDAYS SMALLINT NOT NULL , --開始日期
EDAYS SMALLINT NULL , --結束日期
SCHCLASSID INT NULL DEFAULT -1, --時段所屬的類別
CONSTRAINT NUMID2 PRIMARY KEY (NUM_RUNID, SDAYS, STARTTIME)
)
;

--管理員許可權設置表
CREATE TABLE SECURITYDETAILS (
SECURITYDETAILID INT IDENTITY(1,1) NOT NULL ,
USERID SMALLINT NULL ,
DEPTID SMALLINT NULL ,
SCHEDULE SMALLINT NULL ,
USERINFO SMALLINT NULL ,
ENROLLFINGERS SMALLINT NULL ,
REPORTVIEW SMALLINT NULL ,
REPORT VARCHAR (10) NULL,
CONSTRAINT NAMEID2 PRIMARY KEY (SECURITYDETAILID)
)
;

--輪班表
CREATE TABLE SHIFT (
SHIFTID INT IDENTITY(1,1) NOT NULL , --輪班ID號
NAME VARCHAR (20) NULL , --輪班名稱
USHIFTID INT NULL DEFAULT -1, --
STARTDATE DATETIME NOT NULL DEFAULT '1900-1-1', --起用輪班的日期
ENDDATE DATETIME NULL DEFAULT '1900-12-31', --結束時用輪班的日期
RUNNUM SMALLINT NULL DEFAULT 0, --該輪班中所含的班次數 0<x<13
SCH1 INT NULL DEFAULT 0, --輪班的第一個班次
SCH2 INT NULL DEFAULT 0, --輪班的第二個班次
SCH3 INT NULL DEFAULT 0, --輪班的第三個班次
SCH4 INT NULL DEFAULT 0, --輪班的第四個班次
SCH5 INT NULL DEFAULT 0, --輪班的第五個班次
SCH6 INT NULL DEFAULT 0, --輪班的第六個班次
SCH7 INT NULL DEFAULT 0, --輪班的第七個班次
SCH8 INT NULL DEFAULT 0, --輪班的第八個班次
SCH9 INT NULL DEFAULT 0, --輪班的第九個班次
SCH10 INT NULL DEFAULT 0, --輪班的第十個班次
SCH11 INT NULL DEFAULT 0, --輪班的第十一個班次
SCH12 INT NULL DEFAULT 0, --輪班的第十二個班次
CYCLE SMALLINT NULL DEFAULT 0, --輪班周期
UNITS SMALLINT NULL DEFAULT 0 , --周期單位
CONSTRAINT SHIFTS PRIMARY KEY (SHIFTID)
)
;

--員工登記指紋表
CREATE TABLE TEMPLATE (
TEMPLATEID INT IDENTITY(1,1) NOT NULL , --指紋ID號
USERID INT NOT NULL , --員工ID號
FINGERID INT NOT NULL , --手指ID號,0-9分別表示右手拇指、右手食指、……、左手無名指、左手小指等
TEMPLATE image NOT NULL , --指紋模板1
TEMPLATE2 image NULL , --指紋模板2
TEMPLATE3 image NULL , --指紋模板3
BITMAPPICTURE image NULL , --登記的指紋圖像1
BITMAPPICTURE2 image NULL , --登記的指紋圖像2
BITMAPPICTURE3 image NULL , --登記的指紋圖像3
BITMAPPICTURE4 image NULL , --登記的指紋圖像4
USETYPE SMALLINT NULL , --指紋模板的用法,Bit0表示僅作備份不比對,Bit1表示指紋比對時使用低識別門限
CONSTRAINT TEMPLATED PRIMARY KEY (TEMPLATEID)
)
;

--員工排班表
CREATE TABLE USER_OF_RUN (
USERID INT NOT NULL , --員工ID號
NUM_OF_RUN_ID INT not NULL , --班次或輪班ID號
STARTDATE DATETIME not NULL DEFAULT '1900-1-1', --起用班次的日期
ENDDATE DATETIME not NULL DEFAULT '2099-12-31', --結束使用該班次的日期
ISNOTOF_RUN INT NULL DEFAULT 0, --是否輪班
ORDER_RUN INT NULL , --輪班的起始班次
CONSTRAINT USER_ST_NUM PRIMARY KEY (USERID, NUM_OF_RUN_ID, STARTDATE, ENDDATE)
)
;

--員工考勤例外(請假/公出)表
CREATE TABLE USER_SPEDAY (
USERID INT NOT NULL , --員工ID號
STARTSPECDAY DATETIME NOT NULL DEFAULT '1900-1-1', --開始日期
ENDSPECDAY DATETIME NULL DEFAULT '2099-12-31', --結束日期
DATEID SMALLINT not NULL DEFAULT -1, --例外類型,999為公出,-1為注釋
YUANYING VARCHAR (200) NULL , --例外的原因
[DATE] DATETIME NULL , --登記/輸入記錄的時間
CONSTRAINT USER_SEP PRIMARY KEY (USERID, STARTSPECDAY, DATEID)
)
;

--員工臨時排班表
CREATE TABLE USER_TEMP_SCH (
USERID INT not NULL , --員工ID號
COMETIME DATETIME not NULL , --上班時間
LEAVETIME DATETIME not NULL , --下班時間
OVERTIME INT not NULL DEFAULT 0, --該時段中計算加班的時間
[TYPE] SMALLINT NULL DEFAULT 0, --類型
FLAG SMALLINT NULL DEFAULT 1, --標志
SCHCLASSID INT NULL DEFAULT -1, --該時段所屬時段類別ID號,-1表示自動判別
CONSTRAINT USER_TEMP PRIMARY KEY (USERID, COMETIME, LEAVETIME)

)
;

--員工信息表
CREATE TABLE USERINFO (
USERID INT IDENTITY(1,1) NOT NULL , --員工ID號
BADGENUMBER VARCHAR (12) NOT NULL , --考勤號碼
SSN VARCHAR (20) NULL , --身份證/證件號
NAME VARCHAR (20) NULL , --姓名
GENDER VARCHAR (2) NULL , --性別
TITLE VARCHAR (20) NULL , --職務
PAGER VARCHAR (20) NULL , --行動電話/傳呼機
BIRTHDAY DATETIME NULL , --生日
HIREDDAY DATETIME NULL , --參加工作日期
STREET VARCHAR (40) NULL , --家庭地址
CITY VARCHAR (2) NULL , --市代碼
STATE VARCHAR (2) NULL , --省代碼
ZIP VARCHAR (12) NULL , --郵編
OPHONE VARCHAR (20) NULL , --辦公電話
FPHONE VARCHAR (20) NULL , --家庭電話
VERIFICATIONMETHOD SMALLINT NULL , --驗證方式
DEFAULTDEPTID SMALLINT NULL DEFAULT 1, --所屬部門ID號
SECURITYFLAGS SMALLINT NULL , --管理員標志
ATT SMALLINT NOT NULL DEFAULT 1, --考勤有效
INLATE SMALLINT NOT NULL DEFAULT 1, --計遲到
OUTEARLY SMALLINT NOT NULL DEFAULT 1, --計早退
OVERTIME SMALLINT NOT NULL DEFAULT 1, --計加班
SEP SMALLINT NOT NULL DEFAULT 1, --
HOLIDAY SMALLINT NOT NULL DEFAULT 1, --假日休息
MINZU VARCHAR (8) NULL , --民族
[PASSWORD] VARCHAR (20) NULL , --口令
LUNCHDURATION SMALLINT NOT NULL DEFAULT 1, --有午休
MVerifyPass VARCHAR(10) NULL, --考勤驗證密碼
PHOTO Image NULL, --照片
CONSTRAINT USERIDS PRIMARY KEY (USERID)
)
;

CREATE UNIQUE INDEX USERFINGER ON TEMPLATE(USERID, FINGERID)
;

CREATE UNIQUE INDEX HOLIDAYNAME ON HOLIDAYS(HOLIDAYNAME)
;

CREATE INDEX DEPTNAME ON DEPARTMENTS(DEPTNAME)
;

CREATE UNIQUE INDEX EXCNOTE ON EXCNOTES(USERID, ATTDATE)
;

CREATE UNIQUE INDEX BADGENUMBER ON USERINFO(BADGENUMBER)
;

INSERT INTO DEPARTMENTS (DEPTNAME, SUPDEPTID) VALUES('總公司',0)
;

--假類表
Create Table LeaveClass(
LeaveId INT Identity(1,1) not null primary key, --假類ID號
LeaveName VARCHAR(20) not null, --假類名稱
MinUnit float not null default 1, --最小統計單位
Unit smallint not null default 1, --統計單位
RemaindProc smallint not null default 1, --舍入控制
RemaindCount smallint not null default 1, --統計時累計
ReportSymbol varchar(4) not null default '-', --報表中的表示符號
Dect float not null default 0, --
Color int not null default 0, --顯示顏色
Classify SMALLINT NOT null default 0) --計算類別,~bit7-是否計算為請假
;

--統計項目表
Create Table LeaveClass1(
LeaveId INT Identity(999,1) not null primary key, --999-公出
LeaveName VARCHAR(20) not null,
MinUnit float not null default 1,
Unit smallint not null default 0,
RemaindProc smallint not null default 2,
RemaindCount smallint not null default 1,
ReportSymbol varchar(4) not null default '_',
Dect float not null default 0,
LeaveType SMALLINT not null default 0, --bit0-是否統計項;bit1-是否異常情況項;
Color int not null default 0,
Classify SMALLINT not null default 0, --計算類別,bit0-按班次時段分類;bit1-按節假日分類
Calc text null) --計算單位
;

--班次時段類別設置表
CREATE TABLE SchClass(
schClassid INT identity(1,1) NOT NULL PRIMARY KEY, --時段類別ID號
schName VARCHAR(20) NOT null, --時段類別名稱
StartTime datetime NOT NULL, --起始時間
EndTime datetime NOT NULL, --結束時間
LateMinutes int null, --計遲到分鍾數
EarlyMinutes int null, --計早退分鍾數
CheckIn int null default 1, --該時段上班需要簽到
CheckOut int null default 1, --該時段下班需要簽退
CheckInTime1 datetime NULL, --開始簽到時間
CheckInTime2 datetime NULL, --結束簽到時間
CheckOutTime1 datetime NULL, --開始簽退時間
CheckOutTime2 datetime NULL, --結束簽退時間
Color Int NULL default 16715535, --表示顏色
AutoBind SMALLINT NULL DEFAULT 1) --
;

--系統參數表
Create Table AttParam(
PARANAME VARCHAR (20) NOT NULL Primary key,
PARATYPE VARCHAR (2) NULL ,
PARAVALUE VARCHAR(100) NOT NULL)
;
insert into LeaveClass(LeaveName, Unit, ReportSymbol, Color)
values('病假', 1, 'B', 3398744);
insert into LeaveClass(LeaveName, Unit, ReportSymbol, Color)
values('事假', 1, 'S', 8421631);
insert into LeaveClass(LeaveName, Unit, ReportSymbol, Color)
values('探親假', 1, 'T', 16744576);
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType, Calc)
values('公出', 0.5, 3, 1, 1, 'G', 3, 'if(AttItem(LeaveType1)=999,AttItem(LeaveTime1),0)+if(AttItem(LeaveType2)=999,AttItem(LeaveTime2),0)+if(AttItem(LeaveType3)=999,AttItem(LeaveTime3),0)+if(AttItem(LeaveType4)=999,AttItem(LeaveTime4),0)+if(AttItem(LeaveType5)=999,AttItem(LeaveTime5),0)');
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType)
values('正常', 0.5, 3, 1, 0, ' ', 3);
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType, Calc)
values('遲到', 10, 2, 2, 1, '>', 3, 'AttItem(minLater)');
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType, Calc)
values('早退', 10, 2, 2, 1, '<', 3, 'AttItem(minEarly)');
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType, Calc)
values('請假', 1, 1, 1, 1, '假', 3,
'if((AttItem(LeaveType1)>0) and (AttItem(LeaveType1)<999),AttItem(LeaveTime1),0)+if((AttItem(LeaveType2)>0) and (AttItem(LeaveType2)<999),AttItem(LeaveTime2),0)+if((AttItem(LeaveType3)>0) and (AttItem(LeaveType3)<999),AttItem(LeaveTime3),0)+if((AttItem(LeaveType4)>0) and (AttItem(LeaveType4)<999),AttItem(LeaveTime4),0)+if((AttItem(LeaveType5)>0) and (AttItem(LeaveType5)<999),AttItem(LeaveTime5),0)');
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType, Calc)
values('曠工', 0.5, 3, 1, 0, '曠', 3, 'AttItem(MinAbsent)');
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType, Calc)
values('加班', 1, 1, 1, 1, '+', 3, 'AttItem(MinOverTime)');
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType, Calc)
values('節日加班', 1, 1, 0, 1, '=', 0, 'if(HolidayId(1)=1, AttItem(MinOverTime),0)');
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType)
values('休息日', 0.5, 3, 2, 1, '-', 2);
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType, Calc)
values('未簽到', 1, 4, 2, 1, '[', 2,
'If(AttItem(CheckIn)=null,If(AttItem(OnDuty)=null,0,if(((AttItem(LeaveStart1)=null) or (AttItem(LeaveStart1)>AttItem(OnDuty))) and AttItem(DutyOn),1,0)),0)');
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType, Calc)
values('未簽退', 1, 4, 2, 1, ']', 2,
'If(AttItem(CheckOut)=null,If(AttItem(OffDuty)=null,0,if((AttItem(LeaveEnd1)=null) or (AttItem(LeaveEnd1)<AttItem(OffDuty)),if((AttItem(LeaveEnd2)=null) or (AttItem(LeaveEnd2)<AttItem(OffDuty)),if(((AttItem(LeaveEnd3)=null) or (AttItem(LeaveEnd3)<AttItem(OffDuty))) and AttItem(DutyOff),1,0),0),0)),0)');
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType)
values('離崗未簽到', 1, 4, 2, 1, '{', 6);
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType)
values('離崗未簽退', 1, 4, 2, 1, '}', 6);
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType)
values('離崗', 1, 1, 2, 1, 'L', 3);

insert into AttParam(ParaName,ParaValue) values('MinsEarly',5);
insert into AttParam(ParaName,ParaValue) values('MinsLate',10);
insert into AttParam(ParaName,ParaValue) values('MinsNoBreakIn',60);
insert into AttParam(ParaName,ParaValue) values('MinsNoBreakOut',60);
insert into AttParam(ParaName,ParaValue) values('MinsNoIn',60);
insert into AttParam(ParaName,ParaValue) values('MinsNoLeave',60);
insert into AttParam(ParaName,ParaValue) values('MinsNotOverTime',60);
insert into AttParam(ParaName,ParaValue) values('MinsWorkDay',420);
insert into AttParam(ParaName,ParaValue) values('NoBreakIn',1012);
insert into AttParam(ParaName,ParaValue) values('NoBreakOut',1012);
insert into AttParam(ParaName,ParaValue) values('NoIn',1001);
insert into AttParam(ParaName,ParaValue) values('NoLeave',1002);
insert into AttParam(ParaName,ParaValue) values('OutOverTime',0);
insert into AttParam(ParaName,ParaValue) values('TwoDay',0);
insert into AttParam(ParaName,ParaValue) values('CheckInColor',16777151);
insert into AttParam(ParaName,ParaValue) values('CheckOutColor',12910591);
insert into AttParam(ParaName,ParaValue) values('DBVersion',167);

㈥ 利用C#連接sql2005資料庫,進行簽到簽退。​員工可以簽到,簽退操作;

做個OA啊,你要的功能都有

㈦ sql已經獲取簽到人員,怎樣獲取未簽到人員

....這東西,,我去,,,設計數據表如下
ID=自動編號,數字型
Ren_ID=簽到人員名單,數字型
Year_NUM=簽到時間年份,文本型,如答畢:2014
Month_NUM=簽到時間月份,文本型,如:1月,2月
Check_time=簽到否桐舉螞與簽到時間,文本型,如局埋: 已簽到|08:30,未簽到|,未簽到|,已簽到|07:59,

㈧ 連續簽到的天數,並排序,求這個sql語句該怎麼寫

這里有一個採用遍歷的方式獲取指定用戶連續簽到的方法分享,

賬號連續簽到天數的獲取

實現思路:採用遍歷循環的方式,依次從大到小的比對用戶是否簽到

如有疑問,及時溝通!

㈨ 如何根據id統計簽到表中每個人的簽到次數(sql)

select id,count(*) as 次數
from table_name
group by id

㈩ 如何實現簽到打卡的位置信息寫入後台資料庫

1、首先,在後台資料庫中建立一個表,用來存儲簽到打卡的位置信息,表中包括簽到者的ID、簽到時間、簽到地點等欄位。
2、在簽到時,讓簽到者使用手機定位獲取自己的位置信息,將獲取的位置信息(經緯度)發送到後台服納汪務器。
3、後台伺服器接收到簽到者的位置信息後,將其轉換為具體的地址,並將簽到者的ID、簽到時間、簽到地點等信洞升仔息寫入到後台資料庫中。
4、最後,將簽到信息返回給簽笑飢到者,以確認簽到成功。