CREATE View V_Signin
AS
select ltrim(rtrim(id)) as 序号,
ClientName as 姓名,
convert(varchar(10),SigninTime,120) as 签到日期,
convert(varchar(10),SigninTime,108) as 签到时间,
case SigninFlag
WHEN 1 THEN '上午签到'
WHEN 2 THEN '中午签退'
WHEN 3 THEN '中午签到'
WHEN 4 THEN '下午签退'
end as 签到签退,
结果 =
case
when (SigninFlag = 1) and (convert(varchar(10),SigninTime,108) < '09:00:00') then '正常'
when (SigninFlag = 2) and (convert(varchar(10),SigninTime,108) > '11:30:00') then '正常'
when (SigninFlag = 3) and (convert(varchar(10),SigninTime,108) < '13:00:00') then '正常'
when (SigninFlag = 4) and (convert(varchar(10),SigninTime,108) > '16:30:00') then '正常'
else '迟到或早退'
end
from echo..signin以上代码是一个对签到表的视图,当某人未签到或签退的时候,表中就不会有该记录,请问如何实现当未签到或签退的时候在视图中也将其显示出来,即每个人每天应该有四条记录。
某人未签到或签退的时候,表中就不会有该记录.这个就有些麻烦了.需要有一个人员表,CROSS JOIN一个动态的日期表,
然后再LEFT JOIN你的echo..signin这样来显示。