2016-01-12 90 views
1

我正在參加考勤項目。在這裏,我存儲的學生誰在表'出席'字段的特定日期缺席 - 「sno,rollno,subject_code,日期。如果所有的學生都存在的話,我將存儲subject_code,日期和rollno爲NULL這means'all學生存在」在MYSQL中合併兩列

------|--------|------------|-----------| 
sno |rollno |subject_code| date  | 
1  | 1234 | a110  | 12-12-2012| 
2  | 1235 | a110  | 12-12-2012| 
3  | 1235 | a111  | 14-12-2012| 

IAM從表中以學生的詳細信息‘學生’有田 - > rollno,名稱

|--------|-------| 
    | rollno | name | 
    | 1234 | xyz | 
    | 1235 | abc | 
    | 1236 | mno | 
    | 1237 | qrs | 

現在我想列出學生出勤,使得輸出應該是這樣的特定日期承擔日期列表「12-12-2012」

list of "12-12-2012" for subject a110 list of "14-12-2012" for subject a111 
    |-------|------|---------|   |-------|------|---------|  
    |rollno | name | status |   |rollno | name | status | 
    | 1234 | xyz | Absent |   | 1234 | xyz | Present | 
    | 1235 | abc | Absent |   | 1235 | abc | Absent | 
    | 1236 | mno | Present |   | 1236 | mno | Present | 
    | 1237 | qrs | Present |   | 1237 | qrs | Present | 

普萊斯Ë幫助我..

+0

如果多名學生在同一天缺席會發生什麼?第一張桌子上有多行? –

+0

缺勤的學生將被添加到當天的考勤表中並且該主題 – Sateesh

+0

您是否可以更新您的示例以顯示該案例?兩名學生在同一天缺席? –

回答

1

使用LEFT JOIN找出哪個學生不必須在考勤表中的一行。 (那些在場的人)

SELECT s.rollno, 
     s.name, 
     CASE WHEN a.rollno IS NULL THEN 'Present' 
      ELSE 'Absent' 
     END as status 
FROM student s 
LEFT JOIN attendance a 
     ON s.rollno = a.rollno 
+0

你是suuper男人。非常感謝你 – Sateesh