我正在寻找一种方法来计算学生缺勤的不同时期:
每次学生缺勤时,我都会在缺勤表中创建一条记录,有些缺勤可能会重叠,有些会延长之前的缺勤时间。
StuId StrPer EndPer
------ ----------- -----------
111111 2011-01-10 2011-01-15
222222 2011-02-01 2011-02-05
222222 2011-02-06 2011-02-08
333333 2011-04-07 2011-04-14
444444 2011-04-20 2011-04-25
444444 2011-04-23 2011-04-28
111111 2011-05-01 2011-05-03
现在我想计算有间隔的唯一缺勤期的数量,结果应该是:
StuId NbrAbs
------ ------
111111 2
222222 1
333333 1
444444 1
111111 有两个缺勤期,两者之间有间隔
222222也有两个缺席期,但没有间隔,所以必须认为是1个缺席期
333333 只有 1 个缺勤期
444444有2个周期重叠,也没有间隙,所以它必须被认为是1个缺席周期
谁能帮我写一个查询?