繁体   English   中英

Microsoft SQL Server上的自动生成的行

[英]Auto-generated row on Microsoft SQL Server

我目前正在研究基于指纹的学生出勤系统。 我正在使用Arduino Uno和指纹传感器来获取学生出勤记录并将其存储在SQL Server中。 我的数据库中有一个名为Attendance的表,用于存储学生出勤记录,但我对此有问题。

比方说,A同学今天缺席 ,考勤记录将不被存储在表Attendance了学生答:意思就是我只能告诉学生今天谁是目前学校,为学生A考勤记录不能被显示给教师。

教师只能在选择日期后查看学生出勤记录,老师无法查看学生A出勤记录,因为表Attendance表中没有学生A的记录

那么我该如何解决呢? 有什么建议或参考吗? 感谢您的帮助。 谢谢

SELECT * 
FROM STUDENT
LEFT JOIN ATTENDANCEMARK
ON STUDENT.ID = ATTENDANCEMARK.STUDENTID
WHERE ATTENDANCEMARK.DATE = @DATE OR ATTENDANCEMARK.DATE IS NULL

说明:您希望列出所有有今天出勤分数的学生,但是想要列出所有没有出勤分数的学生。

假设您要传递日期作为参数,则可以将left outer join到出勤表,然后将日期检查放在on子句中(与where子句相对。将它放在where子句中实际上是left outer join由于解析和执行查询的顺序, left outer join变成inner join联接。

select * 
from [student] s
left outer join [attendance] a
    on s.[id] = a.[id]
        and a.[attendanceRecordDate] = @date

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM