且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何根据sql server中的设备登录更新员工的出勤率

更新时间:2023-02-05 15:47:23

您是正确的,它将显示/更新所有记录的ABSENT,因为您的日期时间包含上个月的数据。减去那么多。从以上查询中的GETDATE()开始,您将得到所需的输出。
You are correct it will show / update ABSENT for all records as your date time contains last months data. Minus that much no. of days from GETDATE() in above query, you will get the desired output.


您好,



试试这个



这里我假设Device_Person_id和personal_id列具有相同的值。



Hi,

Try This

here i am assuming that Device_Person_id and personal_id columns are having same values.

UPDATE dbo.Emp_setting
SET Emp_status = CASE WHEN (SELECT COUNT(*) FROM  dbo.tempDeviceLogs WHERE CONVERT(VARCHAR,tempDeviceLogs.logDateTime,101) = CONVERT(VARCHAR,GETDATE(),101)
AND Device_Person_id = personal_id) > 0 THEN 'P' ELSE 'A' END







希望这会对你有帮助。




Hope this will help you.


检查这个,





Check This,


UPDATE dbo.Emp_setting
SET Emp_status = CASE WHEN (SELECT COUNT(*) FROM  dbo.tempDeviceLogs WHERE CONVERT(VARCHAR,tempDeviceLogs.logDateTime,101) = CONVERT(VARCHAR,GETDATE() - 31 ,101)
AND Device_Person_id = personal_id) > 0 THEN 'P' ELSE 'A' END