问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

通过输入时间段,查询出勤率,迟到次数,早退次数,旷工次数,用的ssh集成,oracle数据库,怎么写查询方法

发布网友 发布时间:2022-05-29 05:06

我来回答

3个回答

热心网友 时间:2023-10-02 17:58

--建表SQL
Create Table mhl.manualsign --考勤信息表
(ms_id int,--非空 种子,自增1 签卡Id

user_id Varchar(50) not null,--自增1 签卡Id

ms_time date not null,-- 非空 签卡时间

ms_desc Varchar(200) not null,-- 非空 签卡备注

ms_tag int not null-- 非空 签卡标记 (1,上班打卡,0,下班打卡)
);

create table mhl.tbl_worktime --上下班时间表

(wt_id int not null,-- 非空 种子,自增1 工作时间Id

wt_uptime Varchar(50) not null,-- 非空 上班时间

wt_downtime Varchar(50) not null-- 非空 下班时间
);
-- mhl.manualsign插入数据
truncate table mhl.manualsign;
insert into mhl.manualsign
select 1,'001', to_date('2012-01-01 08:04:54','yyyy-mm-dd hh24:mi:ss'),'001','1' from al
union
select 2,'001', to_date('2012-01-01 17:04:54','yyyy-mm-dd hh24:mi:ss'),'001','0' from al
union
select 3,'001', to_date('2012-01-02 08:04:54','yyyy-mm-dd hh24:mi:ss'),'001','1' from al
union
select 4,'001', to_date('2012-01-02 18:04:54','yyyy-mm-dd hh24:mi:ss'),'001','0' from al
union
select 5,'001', to_date('2012-01-03 09:04:54','yyyy-mm-dd hh24:mi:ss'),'001','1' from al
union
select 6,'001', to_date('2012-01-03 18:04:54','yyyy-mm-dd hh24:mi:ss'),'001','0' from al
union
select 7,'001', to_date('2012-01-05 08:04:54','yyyy-mm-dd hh24:mi:ss'),'001','1' from al
union
select 8,'001', to_date('2012-01-05 18:04:54','yyyy-mm-dd hh24:mi:ss'),'001','0' from al
union
select 9,'001', to_date('2012-01-07 08:04:54','yyyy-mm-dd hh24:mi:ss'),'001','1' from al
union
select 10,'001', to_date('2012-01-07 18:04:54','yyyy-mm-dd hh24:mi:ss'),'001','0' from al;

insert into mhl.manualsign
select 11,'002', to_date('2012-01-01 08:04:54','yyyy-mm-dd hh24:mi:ss'),'002','1' from al
union
select 12,'002', to_date('2012-01-01 18:04:54','yyyy-mm-dd hh24:mi:ss'),'002','0' from al
union
select 13,'002', to_date('2012-01-02 08:04:54','yyyy-mm-dd hh24:mi:ss'),'002','1' from al
union
select 14,'002', to_date('2012-01-02 18:04:54','yyyy-mm-dd hh24:mi:ss'),'002','0' from al
union
select 15,'002', to_date('2012-01-03 09:04:54','yyyy-mm-dd hh24:mi:ss'),'002','1' from al
union
select 16,'002', to_date('2012-01-03 18:04:54','yyyy-mm-dd hh24:mi:ss'),'002','0' from al
union
select 17,'002', to_date('2012-01-05 08:04:54','yyyy-mm-dd hh24:mi:ss'),'002','1' from al
union
select 18,'002', to_date('2012-01-05 18:04:54','yyyy-mm-dd hh24:mi:ss'),'002','0' from al
union
select 19,'002', to_date('2012-01-07 08:04:54','yyyy-mm-dd hh24:mi:ss'),'002','1' from al
union
select 20,'002', to_date('2012-01-07 18:04:54','yyyy-mm-dd hh24:mi:ss'),'002','0' from al;
--mhl.tbl_worktime插入数据
truncate table mhl.tbl_worktime;
insert into mhl.tbl_worktime
select 1,'2012-01-01 09:00:00','2012-01-01 18:00:00' from al;

----通过输入时间段,查询出勤率,迟到次数,早退次数,旷工次数
--设置入参:开始时间为:2012-01-01 结束时间为 2012-01-07
select a.user_id,
(select Count(1) / 2
From mhl.manualsign c
where c.user_id = a.user_id
and c.ms_time >= To_Date('2012-01-01', 'yyyy-mm-dd')
and c.ms_time <= To_Date('2012-01-07', 'yyyy-mm-dd')) /
(select To_Date('2012-01-07', 'yyyy-mm-dd') -
To_Date('2012-01-01', 'yyyy-mm-dd')
from al) 出勤率,
(Select Count(1)
From mhl.manualsign d
where a.user_id = d.user_id
and d.ms_tag = '1'
and To_char(d.ms_time, 'hh24:mi:ss') > To_char('09:00:00')
and d.ms_time >= To_Date('2012-01-01', 'yyyy-mm-dd')
and d.ms_time <= To_Date('2012-01-07', 'yyyy-mm-dd')
and d.user_id = a.user_id) 迟到次数,
(Select Count(1)
From mhl.manualsign d
where a.user_id = d.user_id
and d.ms_tag = '0'
and to_char(d.ms_time, 'hh24:mi:ss') < to_char('18:00:00')
and d.ms_time >= To_Date('2012-01-01', 'yyyy-mm-dd')
and d.ms_time <= To_Date('2012-02-01', 'yyyy-mm-dd')
and d.user_id = a.user_id) 早退次数,
round(round(1 + To_Date('2012-01-07', 'yyyy-mm-dd') -
To_Date('2012-01-01', 'yyyy-mm-dd')) -
(select count(1) / 2
from mhl.manualsign f
where f.user_id = '001'
and f.ms_time >= To_Date('2012-01-01', 'yyyy-mm-dd')
and f.ms_time <= 1 + To_Date('2012-01-07', 'yyyy-mm-dd'))) 旷工次数
from mhl.manualsign a
where a.ms_time between To_Date('2012-01-01', 'yyyy-mm-dd') and /*a.ms_time <=*/
To_Date('2012-01-07', 'yyyy-mm-dd')
group by a.user_id;

热心网友 时间:2023-10-02 17:59

可以分开写
--迟到次数
select count(1) from manualsign a where a.ms_time >to_time(时间值) and a.ms_tag =1 and a.user_id='员工的ID' and tbl_worktime between startTime and endTime
--早退次数
select count(1) from manualsign a where a.ms_time <to_time(时间值) and a.ms_tag =0 and a.user_id='员工的ID' and tbl_worktime between startTime and endTime
其他的自己照着写就行了
想要连成一个sql也可以,可以把这几个当子查询

热心网友 时间:2023-10-02 17:59

select
(select count(*) from manualsign where ms_time>开始时间 and ms_time < 结束时间 and
wt_uptime > 9:00)/(select count(*) from manualsign where ms_time>开始时间 and ms_time < 结束时间) 出勤率,
(select count(*) from manualsign group by user_id where ms_time>开始时间 and ms_time < 结束时间 and wt_uptime < 9:00 ) 迟到次数,
(select count(*) from manualsign group by user_id where ms_time>开始时间 and ms_time < 结束时间 and wt_uptime is null) 旷工次数
from al

希望对你有帮助
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么电脑老弹出网页,我用瑞星正版查不到毒啊,为什么会是这样呢... 台电酷闪16G没法量产怎么办?主控型号:IT1170E-48C 1216-CXO NC02AD... 台电心灵塔优盘量产失败,chipeasy检测联阳IT1171A0AA(怀疑有误,见图... ...心灵塔优盘量产失败,chipeasy检测联阳IT1171 A0AA(怀疑有误,见图... 台电心灵塔16G联阳it1171 A0AA官方量产/修复工具 ems国际邮件费用 哪种国际快递寄到欧洲速度最快? 物流到韩国费用 一个礼拜跳绳几次减肥效果最佳 我每周跳3-4次绳,每次20-30分钟,可以减肥么 心脏有杂音,属于什么病症?怎样治疗?费用如何? 喜来健扰民噪音...已经烦得好几个月了 本人心脏不好 这样下去感觉要死了…我该怎么办 打了市民热线 我心脏有杂音。这是心脏病吗 神经性心脏病 发病一般在午夜 全身抖动 心脏感觉不能跳动 心发紧、累 听不得噪音 听了一点噪音就 生活在噪音环境为什么心脏会不舒服 人总是害怕大一点的声音是神经上的毛病还是心脏上的毛病? 心脏有杂音是怎么回事啊 ?严重吗?害怕 心脏功能不好的人,应该多注意什么呢,? 五谷杂粮防虫,不是密封的 15万左右的国产SUV中,哪款车的性价比高呢? MG领航这车的性能和配置怎么样? 不能听噪音是不是心脏不好??? 谁能告诉我,15万之内的SUV车型中,哪一款比较畅销? 名爵MG6怎么样? 我先买15万左右的车子,有没有懂的?推荐一下?谢谢 爆破企业三标一体认证需要的资料 从哪些方面了解sigfox技术 味千的广告要素体现在哪些方面 我老婆买的成都社保包括医疗,生育险种在区医院生小孩,为什么只给报2000元 有谁知道2012年上半年海南省心理咨询师国家职业资格报名是在什么时间? 麻烦告诉我,谢谢。 成都社保生孩子可以报销多少费用 心脏有杂音,和休息不好有关吗? 心脏杂音,这算是心脏病吗? 打印时明明可以一张纸打完为什么老是2张纸打出来 紧张,激动,人多的时候手会抖是什么原因? 老男孩python14期多少天 建筑设计防火规范有规定住宅建筑的高度吗 大众途岳自带灭火器吗? 请问奥迪a1车上有灭火器吗? 贵求如何下中国象棋?马怎么走?车怎么走?炮怎么走?象怎么走?士怎么走?将怎么走?多谢了! 3.读了《西湖》这篇课文,你觉得西湖美吗?请你帮它设计一条广告语,让海内外的游人都来欣赏它的美景吧! 西湖美景,幸有名爵6与我们一起同行 三年級語文的作文美丽的东海岸300格怎么写? ( )的海岸 北京哪儿有做横幅的? 就现在在北京,因公*期拖欠我们农民工工资,我们打着要工资的条幅堵在了公司门口,请问这种行为犯法吗 怎么用十字相乘法来解分式,求详解 十字相乘能不能分出两个带分数的因式 北京拉横幅闹事会有什么后果 学分式约分的时候难免用到十字相乘法,请教教我如何用.感谢 分式方程怎么用十字相乘法?