Я пишу запрос SQL:
DECLARE @ResidentID AS INT = NULL
DECLARE @Category AS INT = NULL
DECLARE @ResidentStatus AS INT = NULL
DECLARE @Date AS DATETIME = NULL--'2018-02-27'
SELECT DISTINCT r.Firstname, r.Lastname, r.Active FROM Register.Resident r
LEFT JOIN Register.MonitoringStatusOfUser msu ON msu.ResidentID = r.ID
WHERE (r.ID = @ResidentID OR @ResidentID IS NULL)
Каждый резидент из Register.Resident 'r' имеет поле с именем 'Status', которое является целым числом. В таблице Register.MonitoringStatusOfUser у меня есть записи статусов для каждого пользователя, что-то вроде истории изменений статуса. Я хочу сделать следующее: проверить, есть ли запись для пользователя в Register.MonitoringStatusOfUser ' msu '. Если @Date находится между msu.DateFrom и msu.DateTo, отобразите msu.Status. Если нет, то отобразите r.Status.
Я уже сделал левое соединение для Register.MonitoringStatusOfUser. Однако я не могу понять, как отобразить r.Status, если не выполнено условие @Date, которое я объяснил выше.