考勤问题思路和解决
最近在做一个考勤系统,考勤主要关注的是缺勤、迟到和早退,目前的打卡控制器可以记录用户名和打卡时间,用户可能一天打卡多次,也可能一天只打了一次卡,这些情况都需要考虑。打卡信息都存储在考勤表中,从中要挖掘出一个月内的缺勤人员,迟到人员和早退人
最近在做一个考勤系统,考勤主要关注的是缺勤、迟到和早退,目前的打卡控制器可以记录用户名和打卡时间,用户可能一天打卡多次,也可能一天只打了一次卡,这些情况都需要考虑。打卡信息都存储在考勤表中,从中要挖掘出一个月内的缺勤人员,迟到人员和早退人员,并且能显示缺勤、迟到和早退的时间。
考勤表
CREATE TABLE [dbo].[kaoqin]( [user_name] [varchar](50) NULL, [card_time] [datetime] NULL ) ON [PRIMARY] GO
INSERT INTO [master].[dbo].[kaoqin] select '张三', '2014-08-03 09:36:00' union all select '张三', '2014-08-03 18:10:00' union all select '张三', '2014-08-04 08:32:00' union all select '张三', '2014-08-04 15:15:00' union all select '张三', '2014-08-05 09:32:00' union all select '张三', '2014-08-05 15:15:00' union all select '张三', '2014-08-01 08:36:00' union all select '张三', '2014-08-01 18:10:00' union all select '张三', '2014-08-02 08:32:00' union all select '张三', '2014-08-02 18:15:00' union all select '张三', '2014-08-25 08:00:00' union all select '张三', '2014-08-24 19:00:00' union all select '张三', '2014-08-27 08:00:00' union all select '张三', '2014-08-27 17:00:00' union all select '张三', '2014-08-26 10:00:00' union all select '张三', '2014-08-26 18:30:00' union all select '张三', '2014-08-26 8:00:00' union all select '张三', '2014-08-27 18:56:00' GO
declare @time_start datetime declare @time_end datetime set @time_start = '2014-08-01 00:00:00' set @time_end = DATEADD(M,1,@time_start) -- 一个月的工作日 IF object_id('tempdb..#tempDate') is not null BEGIN drop table #tempDate END CREATE table #tempDate ( stat_day varchar(10) ) IF object_id('tempdb..#tempUserDate') is not null BEGIN drop table #tempUserDate END CREATE table #tempUserDate ( stat_day varchar(10), [user_name] varchar(40) ) CREATE clustered index tempUserDate_Index1 on #tempUserDate ([user_name],stat_day) declare @time_temp datetime set @time_temp = @time_start while @time_temp < @time_end begin if datepart(weekday,@time_temp)>1 and datepart(weekday,@time_temp)<7 begin insert into #tempDate (stat_day) values (CONVERT(varchar(10),@time_temp,121)) end set @time_temp= dateadd(d,1,@time_temp) end insert into #tempUserDate select * from #tempDate cross join (select distinct [user_name] from [kaoqin]) t
select [user_name],CONVERT(varchar(10),card_time,121) as stat_day, MIN(card_time) as on_time,MAX(card_time) as off_time from [kaoqin] group by [user_name],CONVERT(varchar(10),card_time,121)
--缺勤 select * from #tempUserDate a left join ( select [user_name],CONVERT(varchar(10),card_time,121) as stat_day, MIN(card_time) as on_time,MAX(card_time) as off_time from [kaoqin] group by [user_name],CONVERT(varchar(10),card_time,121) ) b on a.[user_name]=b.[user_name] and a.stat_day=b.stat_day where [b].[user_name] is null
--迟到 select * from #tempUserDate a left join ( select [user_name],CONVERT(varchar(10),card_time,121) as stat_day, MIN(card_time) as on_time,MAX(card_time) as off_time from [kaoqin] group by [user_name],CONVERT(varchar(10),card_time,121) ) b on a.[user_name]=b.[user_name] and a.stat_day=b.stat_day where CONVERT(varchar(100), [b].[on_time], 8)>'09:00:00' --早退 select * from #tempUserDate a left join ( select [user_name],CONVERT(varchar(10),card_time,121) as stat_day, MIN(card_time) as on_time,MAX(card_time) as off_time from [kaoqin] group by [user_name],CONVERT(varchar(10),card_time,121) ) b on a.[user_name]=b.[user_name] and a.stat_day=b.stat_day where CONVERT(varchar(100), [b].[off_time], 8)<'18:00:00'
如果某个人他今天既迟到又早退在最终的结果中都会体现,可以从2014-08-05这条数据看出。当然,这个考勤系统还不完善,例如没有将节日考虑进来,初步的考虑是采用Job定期存储每年的节日,如果员工请假,也需要纳入到系统的考虑中。

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Solution to the problem that Win11 system cannot install Chinese language pack With the launch of Windows 11 system, many users began to upgrade their operating system to experience new functions and interfaces. However, some users found that they were unable to install the Chinese language pack after upgrading, which troubled their experience. In this article, we will discuss the reasons why Win11 system cannot install the Chinese language pack and provide some solutions to help users solve this problem. Cause Analysis First, let us analyze the inability of Win11 system to

As smartphone technology continues to develop, mobile phones play an increasingly important role in our daily lives. As a flagship phone focusing on gaming performance, the Black Shark phone is highly favored by players. However, sometimes we also face the situation that the Black Shark phone cannot be turned on. At this time, we need to take some measures to solve this problem. Next, let us share five tips to teach you how to solve the problem of Black Shark phone not turning on: Step 1: Check the battery power. First, make sure your Black Shark phone has enough power. It may be because the phone battery is exhausted

With the continuous development of social media, Xiaohongshu has become a platform for more and more young people to share their lives and discover beautiful things. Many users are troubled by auto-save issues when posting images. So, how to solve this problem? 1. How to solve the problem of automatically saving pictures when publishing on Xiaohongshu? 1. Clear the cache First, we can try to clear the cache data of Xiaohongshu. The steps are as follows: (1) Open Xiaohongshu and click the "My" button in the lower right corner; (2) On the personal center page, find "Settings" and click it; (3) Scroll down and find the "Clear Cache" option. Click OK. After clearing the cache, re-enter Xiaohongshu and try to post pictures to see if the automatic saving problem is solved. 2. Update the Xiaohongshu version to ensure that your Xiaohongshu

Everyone knows that if the computer cannot load the driver, the device may not work properly or interact with the computer correctly. So how do we solve the problem when a prompt box pops up on the computer that the driver cannot be loaded on this device? The editor below will teach you two ways to easily solve the problem. Unable to load the driver on this device Solution 1. Search for "Kernel Isolation" in the Start menu. 2. Turn off Memory Integrity, and it will prompt "Memory Integrity has been turned off. Your device may be vulnerable." Click behind to ignore it, and it will not affect the use. 3. The problem can be solved after restarting the machine.

How to solve the problem that Huawei browser has stopped accessing this webpage? When using Huawei mobile browser to access certain websites, a prompt indicating that access is prohibited may appear, preventing users from browsing related content normally. This is very inconvenient for users. So, what should we do when we encounter a situation where access to the Huawei mobile browser website is prohibited? The editor below will provide you with solutions to the problem of prohibiting access to Huawei browser websites. I hope it will be helpful to you. Solution to the prohibition of access to the Huawei Browser website 1. After opening the Huawei mobile browser, click the three-dot icon below, and then click Settings. 2. After entering the settings, click [Security and Privacy] 3. Turn off the switch on the right side of [Safe Browsing] to remove website access restrictions. The above is the solution to the ban on Huawei browser website access.

The problem of low sound on Apple phones may be caused by many reasons. Users can try to solve the problem by adjusting the volume settings, checking the silent mode, clearing the speakers and earpieces, restarting the phone, checking the headphone jack, etc. How to solve the problem of low sound on Apple mobile phone 1. Adjust the volume setting First, make sure the volume setting of your mobile phone is correct. You can increase the volume by pressing the volume button (usually located on the side of the phone). In addition, you can also adjust the volume in "Sounds & Haptics" or "Sounds & Haptic Feedback" in settings. 2. Check the silent mode to make sure your phone is not in silent mode. You can look for the mute switch next to the volume buttons on the side. If the mute switch is on, the sound will be turned off. 3. Clean the speakers and earpieces. Sometimes the speakers and earpieces may be covered with dust.

WordPress is a very popular open source content management system. Many individual users and businesses choose to use WordPress to build and manage their own websites. However, during the installation of WordPress, you sometimes encounter some problems, such as database connection errors, file permission issues, etc. This article will provide a guide to solving common WordPress installation problems and help users solve problems quickly through specific code examples. Problem 1: Database connection error when installing WordPress

Title: Methods and code examples to solve the problem of garbled characters when importing Chinese data into Oracle. When importing Chinese data into Oracle database, garbled characters often appear. This may be due to incorrect database character set settings or encoding conversion problems during the import process. . In order to solve this problem, we can take some methods to ensure that the imported Chinese data can be displayed correctly. The following are some solutions and specific code examples: 1. Check the database character set settings In the Oracle database, the character set settings are
