我想找出每个学生每个模块的连续缺席, 这是我原来的结果。
我希望我的输出是添加一个连续缺席列,并按模块找出每个学生的连续缺席。
答案 0 :(得分:0)
试试这样。
DECLARE @Tbl TABLE
(
[Id] [int] IDENTITY(1,1),
[Studentcode] VARCHAR(50),
[Semester] VARCHAR(50),
[ModuleCode] VARCHAR(50),
[Date] VARCHAR(50),
[WkNo] VARCHAR(50),
[Attended] VARCHAR(50),
[Absent] [int]
)
INSERT INTO @Tbl
SELECT [Studentcode]
,[Semester]
,[ModuleCode]
,[Date]
,[WkNo]
,[Attended]
,[Absent] FROM Attendance
ORDER BY studentcode,modulecode,date
SELECT T1.*, CASE WHEN (T1.Absent = 1 AND T2.Absent = 1)
AND (T1.ModuleCode = T2.ModuleCode)
THEN 1 ELSE 0 END AS CosecutiveAbsence
FROM @Tbl T1
LEFT OUTER JOIN @Tbl T2
ON T1.Id = T2.Id + 1