Я ищу способ подсчета отдельных периодов без пробелов, в которых студенты отсутствовали:
Каждый раз, когда учащийся отсутствует, я создаю запись в таблице отсутствия, некоторые отсутствия могут перекрываться, некоторые продлевать предыдущее отсутствие.
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 период отсутствия.
Может ли кто-нибудь помочь мне написать запрос для этого?