Я пытаюсь заставить предложение WHERE работать так,
когда @Status равен 2, найдите, где UnitBookedDate находится между StartDate и EndDate
когда @Status равен 4, найдите, где InstallDate находится между StartDate и EndDate
когда @Status равен нулю, найдите, где UnitBookedDate ИЛИ InstallDate находится между StartDate и EndDate
Я думаю, что, возможно, оператор CASE не сработает для того, что мне нужно.
WHERE
TMFT.IsUnit = 1 AND
I.InstallTypeId < 3 AND
CASE
WHEN @Status = 2 THEN I.UnitBookedDate
WHEN @Status = 4 then TMF.InstallDate
WHEN @Status IS NULL THEN I.UnitBookedDate --or TMF.InstallDate
END
BETWEEN @StartDate AND @EndDate