私は学生が欠席していたギャップなしで明確な期間を数える方法を探しています:
学生が欠席するたびに、欠席テーブルにレコードを作成します。一部の欠席は重複する可能性があり、一部は以前の欠席を延長します。
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には2つの不在期間があり、間にギャップがあります
222222にも2つの欠勤期間がありますが、ギャップがないため、1つの欠勤期間と見なす必要があります。
333333の欠勤期間は1つだけです
444444には2つの期間が重複しており、これもギャップがないため、1つの不在期間と見なす必要があります。
誰かが私がこれについてのクエリを書くのを手伝ってもらえますか?