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

sql考勤統計表

發布時間: 2022-06-07 16:56:30

『壹』 求助求助,一條sql統計考勤情況,下面的當天缺勤次數,統計不出來,幫我寫出來,謝謝

把上面 「上午上班=null」 替換為

nvl((select time from qin_record where timeslotid=2 and curdate=r.curdate limit 1),'SWCD') = 'SWCD'

其他的也都替換下,null判斷時是用 is null,不是 「=」,盡量不要用null直接進行判斷,對於空值會判斷不出來。可以用 nvl(欄位,'NULL') = 'NULL' 的形式進行判斷。

在試一下。

不要用 別名進行比較,而且還是中文的別名,看著很蛋疼啊...

『貳』 sql server 怎麼做一個考勤統計

ifobject_id('tb_month')isnotnull
droptabletb_month

createtabletb_month(
idintidentity(0,1)notnullprimarykey,
dtdatetime,wkint,wdint,holidayintdefault0
)

insertintotb_month
selecttop32null,null,null,0
fromsysobjects

declare@todaydatetime
set@today=dateadd(month,datediff(month,0,getdate()),0)

updatetb_monthset
dt=@today+id

updatetb_monthset
wd=datepart(weekday,dt)
,wk=datepart(week,dt)

updatetb_monthset
holiday=1
wherewdin(1,7)

deletefromtb_month
wheremonth(dt)!=month(@today)

select*fromtb_month

『叄』 Sql 如何將表中的考勤記錄,按時間段統計次數,不分工號,只按日期和時間段

select convert(char(10),iotime,120) as 日期,sum(case when datediff(Hour,convert(char(10),iotime,120),iotime)>=15 then 1 else 0) as 15點之後的個數,sum(case when datediff(Hour,convert(char(10),iotime,120),iotime)<15 then 1 else 0) as 15點之前的個數 from 表名 where 這的條件看自己的了,願意一天或者一個時間段都可以了

『肆』 求sql sever語句統計出勤,排行榜, 考勤表每天有一條記錄.也證明出勤了.

SELECT A.部門名.A.NAME,B.KQCS
FROM
(SELECT A.NAME,A.XH,B.部門名 FROM 人事 A,部門表 B WHERE A.BMID = B.ID ) A

LEFT OUTER JOIN
(
SELECT XH,COUNT(*) KQCS
FROM 考勤表 A

GROUP BY CONVERT(CHAR(10),A.TIME,120),XH
) B
ON A.XH = B.XH
ORDER BY A.部門名,B.KQCS DESC

『伍』 SQL考勤統計語句,求助

select name,
sum(case when intime between '8:00' and '8:29' then 1 else 0 end ) as '遲到',
sum(case when intime between '8:30' and '9:00' then 1 else 0 end ) as '缺勤'
from table1
group by name

因為「8:30」是一個公用時間點,不能判別式遲到還是缺勤,
所以遲到我換成「8:29」了

『陸』 sql 學生考勤統計

請問,如果我晚上課晚簽到差值也等於45,似乎違背了目的。

『柒』 如何通過SQL語句進行考勤統計

selectnameas"名字",

max(decode(date_time,'2010/3/50:00:00',type))as"2010/3/50:00:00",

max(decode(date_time,'2010/3/60:00:00',type))as"2010/3/60:00:00",

max(decode(date_time,'2010/3/70:00:00',type))as"2010/3/70:00:00",

max(decode(date_time,'2010/3/80:00:00',type))as"2010/3/80:00:00"

fromtmp

groupbyname

orderbyname;

我用的是Oracle資料庫

我的表結構如下圖所示:

『捌』 sql 統計出勤狀況 select

select a.name,
(select count(1) from b
where b.usid=a.usid and b.狀態='遲到' group by b.usid) as 『遲到』,
(select count(1) from b
where b.usid=a.usid and b.狀態='早退' group by b.usid) as 『早退』
from a

『玖』 sql統計一個月一共出勤多少天

出勤天數
select * from 考勤表 where (intkqstate<7 and outkqstate<7) and 日期 between '2009-1-1' and '2009-1-31' and 員工ID=" & ID
如果不查某個人的,就不用加員工ID這個條件

未出勤天數:
select * from 考勤表 where (intkqstate>6 and outkqstate>6) and 日期 between '2009-1-1' and '2009-1-31' and 員工ID=" & ID

『拾』 SQL月度考勤表,怎麼寫統計表。

把數據表導出後用透視表進行操作,可以實現分類統計,然後你再建立新表格,把分類好的數據復制粘貼上去就是了。