Click here to Skip to main content
15,898,222 members

Comments by Mohammad Imran1 (Top 23 by date)

Mohammad Imran1 30-Nov-22 8:01am View    
I have created mycalendar table

Select * from mycalendar

CALENDAR DATE DAY MONTH
2022-11-29 00:00:00.000 29 11
2022 3
2022-11-30 00:00:00.000 30 11 4 2022 4
2022-12-01 00:00:00.000 1 12 4 2022 5
2022-12-02 00:00:00.000 2 12 4 2022 6
2022-12-03 00:00:00.000 3 12 4 2022 7
2022-12-04 00:00:00.000 4 12 4 2022 1
Mohammad Imran1 30-Nov-22 4:34am View    
im using SQL.. and i want to add missing dates .. check my below query

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
Mohammad Imran1 30-Nov-22 1:00am View    
send me your solution avoid above i need missing dates those employee absent
Mohammad Imran1 29-Nov-22 5:53am View    
Please tell me how can i add missing dates in below query from checkdate column


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
Mohammad Imran1 29-Nov-22 4:42am View    
How can i add missing dates in below query


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 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>