Автоматически сгенерированная строка на Microsoft SQL Server - PullRequest
0 голосов
/ 09 октября 2018

В настоящее время я работаю над системой посещаемости на основе отпечатков пальцев.Я использую Arduino Uno и датчик отпечатков пальцев, чтобы получать записи о посещаемости и хранить их в SQL Server.У меня есть таблица с именем Attendance в моей базе данных, в которой хранятся записи о посещаемости студентов. Но у меня есть проблема с этим.

Допустим, Студент A отсутствует сегодня запись посещаемости не будет сохранена в таблице Attendance для ученика А. Это означает, что я могу показать только ученикам, которые присутствуют * в школе сегодня, запись посещаемости ученика А не может быть показана учителям.,

Учителя могут просматривать записи о посещаемости учеников только после выбора даты. Ученик не может просмотреть запись о посещаемости учителями, поскольку в таблице нет записей о ученике А Attendance

Итак, как я могурешить это?Любое предложение или ссылка?Ваша помощь приветствуется.Спасибо

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Предполагая, что вы передаете дату в качестве параметра, вы можете просто left outer join добавить в таблицу посещаемости и поставить проверку даты в предложении on (в отличие от предложения where.предложение where фактически превращает left outer join в inner join, в связи с порядком, в котором запрос анализируется и выполняется.

select * 
from [student] s
left outer join [attendance] a
    on s.[id] = a.[id]
        and a.[attendanceRecordDate] = @date
0 голосов
/ 09 октября 2018
SELECT * 
FROM STUDENT
LEFT JOIN ATTENDANCEMARK
ON STUDENT.ID = ATTENDANCEMARK.STUDENTID
WHERE ATTENDANCEMARK.DATE = @DATE OR ATTENDANCEMARK.DATE IS NULL

Объяснение: вы хотите перечислить всех студентов с сегодняшним знаком посещаемости, но хотите перечислить всех студентов, даже если у них нет отметки о посещаемости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...