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

考勤查詢sql腳本

發布時間: 2023-08-30 08:35:01

『壹』 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語句進行考勤統計

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 統計每日上班打卡和下班打卡語句

這是在oracle資料庫下做的,不知道你是什麼資料庫,給你提供一下思路
select
card_no,
attr_date,
to_char(atte_time,'HH24:MI')tim,
doorinout,
rn
from (
select
card_no,
attr_date,
atte_time,
doorinout,
ROW_NUMBER() OVER(PARTITION BY card_no,attr_date,doorinout ORDER BY atte_time asc) rn
from(
select
card_no,
(
case
when doorinout=1
then to_date(to_char(atte_time,'yyyy-MM-dd'),'yyyy-MM-dd')
when (doorinout=0 and to_number(to_char(atte_time,'HH24'))<3)
then (to_date(to_char(atte_time,'yyyy-MM-dd'),'yyyy-MM-dd')-1)
else to_date(to_char(atte_time,'yyyy-MM-dd'),'yyyy-MM-dd')
end

)attr_date,
atte_time,
doorinout
from AtteTime
) tmp order by card_no,atte_time asc,doorinout desc
) where rn < 5

『肆』 sql語句實現考勤報表,sql語句怎樣實現員工同一天只有兩次考勤

兩次考勤:select 員工ID,TRUNC(TIME,'d') FROM 考勤表 group by 員工ID,TRUNC(TIME,'d')

having count(*)=2;
漏打:select 員工ID,TRUNC(TIME,'d') FROM 考勤表 group by 員工ID,TRUNC(TIME,'d')
having count(*)<2;

『伍』 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語句的問題,想查詢一整月考勤記錄

select 員工ID,a.[1] 上班時間,b.[1] 下班時間,datediff(mm,b.[1] - a.[1]) 累計時間,
a.[2] 上班時間,b.[2] 下班時間,datediff(mm,b.[2] - a.[2]) 累計時間,.......
from

( select 員工ID,上班時間 from 考勤表
pivot ( min( 考勤時間) for datepart(dd, 考勤時間) in ( [1],[2],[3],................... )) as pvt ) a,

( select 員工ID,上班時間 from 考勤表
pivot ( mxn( 考勤時間) for datepart(dd, 考勤時間) in ( [1],[2],[3],................... )) as pvt ) b
where a.員工ID = b.員工ID

『柒』 sql 考勤統計查詢

select name,dept,count(*) 工作天數,sum(xbsj-sbsj) 工作累計時間,count(case when kqqk=1 then 1 end) 遲到天數,count(case when kqqk=2 then 1 end) 早退天數
from table1 join table2 on table1.uid=table2.uid
group by name,dept

『捌』 sql語句,查詢某個部門的員工考勤異常超過5次的員工,

select
*
from
(select
部門,
員工姓名
,
count(1)
as
'考勤異常數'
from
table
where
部門
=
'X'
and
考勤
=
'異常'
group
by
部門,
員工姓名)
t1
where
t1.考勤異常數
>
5;
---------------------------------------------------------------------------
sql解釋:內層語句是統計某個部門(X)考勤有'異常'的員工及異常次數;
外層語句是將異常次數超過5次的員工查詢出來。

『玖』 SQL語言考勤打卡記錄

首先要有一個工廠日歷的表,列出所有工作日,至少一個欄位:工作日 varchar(10)。
然後這樣即可:
select id,
遲到次數=sum(case when timec>'08:00:00' tand timec<'09:00:00' then 1 else 0 end),
曠工次數=sum(case when timec>'09:00:00' or timec is null then 1 else 0 end),
打卡次數=sum(case when timec is null then 0 else 1 end)
from
(
SELECT * FROM 工廠日歷 left join
(select id,
datec=convert(varchar(10),card_time,120),
timec=substring(convert(varchar,card_time,120),12,8)
from tablename
) a
on 工作日=DATEC
) b
group by ID