我正在更新一个学校申请,在该申请中我想通过他们的ID和选定的时间段来计算任何学生的缺席。我有一个名为CHECKINOUT的Sql Server中的表,用于保存学生的数据。现在我想计算不具有任何student.when在学校有人进入,入口在此表以下字段计算SQL Server中学生的缺席
[USERID]
,[CHECKTIME]
,[CHECKTYPE]
现在说我做的有id 10,我想在上个月计算缺席的学生,我在查询中感到困惑。请帮我在这
我正在更新一个学校申请,在该申请中我想通过他们的ID和选定的时间段来计算任何学生的缺席。我有一个名为CHECKINOUT的Sql Server中的表,用于保存学生的数据。现在我想计算不具有任何student.when在学校有人进入,入口在此表以下字段计算SQL Server中学生的缺席
[USERID]
,[CHECKTIME]
,[CHECKTYPE]
现在说我做的有id 10,我想在上个月计算缺席的学生,我在查询中感到困惑。请帮我在这
正在工作,不知道这是最简单的,但它的工作原理,我测试了它。
select missDates.userid, checkinout.userid, dt from
checkinout right join
(select * from (
SELECT DATEADD(DAY, nbr - 1, @StartDate) dt
FROM (SELECT ROW_NUMBER() OVER (ORDER BY c.object_id) AS Nbr
FROM sys.columns c
) nbrs
WHERE nbr - 1 <= DATEDIFF(DAY, @StartDate, @EndDate)) alldates
cross join (select distinct userid from checkinout) t2) missDates
on missdates.userid = checkinout.userid
and convert(date,checktime) = convert(date,dt)
where checkinout.userid is null
感谢@ Stuart-ainsworth查看天数代码 – billpennock
从字符串中转换日期和/或时间时转换失败。为什么这个错误? –
以及在哪里指定使用的ID缺席正在寻找? –
你可以添加样本数据和预期的结果 –
我已经更新了我的问题@Prdp,我要的次数,除非他们预计每天在校学生是不存在像数(表达) –
你”我们需要一张表格来表明他们在学校期待的日子。这可以是会议日期的学校表或学生的课程表,可以指出何时应该记录缺席。否则,任何有人在这里提出的查询都会将周末和假日标记为缺席,以及他们应该在课堂上的任何日子。 – billpennock