2015-04-24 127 views
0

我想找出每個模塊的每個學生的連續缺失, 這裏是我的原始結果。在SQL中找到連續值

enter image description here

,我想我的輸出是增加一個連續缺席列,並找出連續缺席了每個學生模塊。

enter image description here

+1

什麼是您的RDBMS? – Hiten004

+1

嗨@diptesh,爲了更好地幫助您,您將很高興看到您嘗試查看您的代碼是否處於正確的軌道或脫機狀態。 –

+0

Microsoft SQl服務器2012 –

回答

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