Select * from mycalendar
select u.NAME,u.BADGENUMBER, attendance.SENSORID, attendance.CHECKDate, attendance.CheckIn ,attendance.CheckOut,cast(DATEDIFF(n, attendance.CheckIn, attendance.checkout) / 60 as varchar) + ':' + cast(DATEDIFF(n, attendance.CheckIn, attendance.checkout) % 60 as varchar) as Minutesfrom (select temp.USERID, temp.SENSORID, temp.CHECKDate ,temp.CheckIn,case when temp.COut = temp.CheckIn then null when temp.CheckIn is null then null else temp.COut end as CheckOutfrom(select c.USERID, c.SENSORID, convert(date, CHECKTIME) CHECKDate,(select min(CHECKTIME) from CHECKINOUT cinout where cinout.USERID = c.USERID and cinout.SENSORID = c.SENSORID and cinout.CheckTime >= dateadd(hour, 6, convert(datetime, convert(date, c.CheckTime)))) CheckIn,(select max(CHECKTIME) from CHECKINOUT cinout where cinout.USERID = c.USERID and cinout.SENSORID = c.SENSORID and cinout.CheckTime <= dateadd(hour, 29, convert(datetime, convert(date, c.CheckTime)))) COutfrom CHECKINOUT cgroup by c.USERID, c.SENSORID, convert(date, CHECKTIME), datename(DW,checktime))temp) attendanceinner join userinfo u on u.USERID = attendance.USERID
select u.NAME,u.BADGENUMBER, attendance.SENSORID, attendance.CHECKDate, attendance.CheckIn ,attendance.CheckOut,cast(DATEDIFF(n, attendance.CheckIn, attendance.checkout) / 60 as varchar) + ':' + cast(DATEDIFF(n, attendance.CheckIn, attendance.checkout) % 60 as varchar) as Minutesfrom ( select temp.USERID, temp.SENSORID, temp.CHECKDate ,temp.CheckIn ,case when temp.COut = temp.CheckIn then null when temp.CheckIn is null then null else temp.COut end as CheckOut from( select c.USERID, c.SENSORID, convert(date, CHECKTIME) CHECKDate ,(select min(CHECKTIME) from CHECKINOUT cinout where cinout.USERID = c.USERID and cinout.SENSORID = c.SENSORID and cinout.CheckTime >= dateadd(hour, 6, convert(datetime, convert(date, c.CheckTime)))) CheckIn ,(select max(CHECKTIME) from CHECKINOUT cinout where cinout.USERID = c.USERID and cinout.SENSORID = c.SENSORID and cinout.CheckTime <= dateadd(hour, 29, convert(datetime, convert(date, c.CheckTime)))) COut from CHECKINOUT c group by c.USERID, c.SENSORID, convert(date, CHECKTIME), datename(DW,checktime) )temp) attendance inner join userinfo u on u.USERID = attendance.USERID
select u.NAME,u.BADGENUMBER, attendance.SENSORID, attendance.CHECKDate, attendance.CheckIn ,attendance.CheckOut,cast(DATEDIFF(n, attendance.CheckIn, attendance.checkout) / 60 as varchar) + ':' + cast(DATEDIFF(n, attendance.CheckIn, attendance.checkout) % 60 as varchar) as Minutesfrom ( select temp.USERID, temp.SENSORID, temp.CHECKDate ,temp.CheckIn ,case when temp.COut = temp.CheckIn then null when temp.CheckIn is null then null else temp.COut end as CheckOut from( select c.USERID, c.SENSORID, convert(date, CHECKTIME) CHECKDate --,(select temp.USERID, dateadd(day,1, CHECKTIME cinout where temp.USERID = c.USERID)) CHEC2 ,(select min(CHECKTIME) from CHECKINOUT cinout where cinout.USERID = c.USERID and cinout.SENSORID = c.SENSORID and cinout.CheckTime >= dateadd(hour, 6, convert(datetime, convert(date, c.CheckTime)))) CheckIn ,(select max(CHECKTIME) from CHECKINOUT cinout where cinout.USERID = c.USERID and cinout.SENSORID = c.SENSORID and cinout.CheckTime <= dateadd(hour, 29, convert(datetime, convert(date, c.CheckTime)))) COut from CHECKINOUT c group by c.USERID, c.SENSORID, convert(date, CHECKTIME), datename(DW,checktime) )temp) attendance inner join userinfo u on u.USERID = attendance.userid where u.USERID = 77 <code>
Umair 77 1 2022-11-16 2022-11-16 09:41:25.000 2022-11-16 18:45:46 9:4 Umair 77 1 2022-11-21 2022-11-21 09:29:29.000 2022-11-21 19:00:33 9:31 Umair 77 1 2022-11-25 2022-11-25 09:31:00.000 NULL NULL Umair 77 1 2022-11-26 2022-11-26 10:42:55.000 NULL NULL
Umair 77 1 2022-11-16 2022-11-16 09:41:25.000 2022-11-16 18:45:46 9:4 Umair 77 1 2022-11-16 2022-11-17 NULL NULL NULL Umair 77 1 2022-11-16 2022-11-18 NULL NULL NULL Umair 77 1 2022-11-16 2022-11-19 NULL NULL NULL Umair 77 1 2022-11-16 2022-11-20 NULL NULL NULL Umair 77 1 2022-11-21 2022-11-21 09:29:29.000 2022-11-21 19:00:33 9:31 Umair 77 1 2022-11-16 2022-11-22 NULL NULL NULL Umair 77 1 2022-11-16 2022-11-23 NULL NULL NULL NULL
select u.NAME,u.BADGENUMBER, attendance.SENSORID, attendance.CHECKDate, attendance.CheckIn ,attendance.CheckOut ,cast(DATEDIFF(n, attendance.CheckIn, attendance.checkout) / 60 as varchar) + ':' + cast(DATEDIFF(n, attendance.CheckIn, attendance.checkout) % 60 as varchar) as Minutes from ( select temp.USERID, temp.SENSORID, temp.CHECKDate ,temp.CheckIn ,case when temp.COut = temp.CheckIn then null when temp.CheckIn is null then null else temp.COut end as CheckOut from( select c.USERID, c.SENSORID, convert(date, CHECKTIME) CHECKDate ,(select min(CHECKTIME) from CHECKINOUT cinout where cinout.USERID = c.USERID and cinout.SENSORID = c.SENSORID and cinout.CheckTime >= dateadd(hour, 6, convert(datetime, convert(date, c.CheckTime)))) CheckIn ,(select max(CHECKTIME) from CHECKINOUT cinout where cinout.USERID = c.USERID and cinout.SENSORID = c.SENSORID and cinout.CheckTime <= dateadd(hour, 29, convert(datetime, convert(date, c.CheckTime)))) COut from CHECKINOUT c group by c.USERID, c.SENSORID, convert(date, CHECKTIME), datename(DW,checktime) )temp ) attendance inner join userinfo u on u.USERID = attendance.USERID where u.USERID =77