【发布时间】:2017-02-25 13:59:04
【问题描述】:
我有一张表格,用于存储学生每天的出勤情况。我需要让连续缺勤3天的学生。但是,考勤的日期没有顺序,不包括缺勤、节假日、周末等一些日子。学生参加的日期是该表中存在记录的日期。
数据是这样的
StudentId Date Attendance
-----------------------------------------
178234 1/1/2017 P
178234 5/1/2107 A
178234 6/1/2107 A
178234 11/1/2107 A
178432 1/1/2107 P
178432 5/1/2107 A
178432 6/1/2107 P
178432 11/1/2107 A
在上述情况下,结果应该是
StudentId AbsenceStartDate AbsenceEndDate ConsecutiveAbsences
----------------------------------------------------------------------------
178234 5/1/2017 11/1/2017 3
我已尝试实施此解决方案Calculating Consecutive Absences in SQL 但仅适用于按顺序排列的日期。任何建议都会很棒,谢谢
【问题讨论】:
-
学生就读的日期是该表中存在记录的日期
-
所以要确认一下,学生应该参加的所有日期都记录在表中,
Attendance列告诉您他们是否在场 (P) 或缺席 (A)那天?
标签: sql sql-server tsql