Я пытаюсь получить сотрудников, которые закончили свои 5,10,15,20 и т. Д. Лет.Я хочу получать данные ежеквартально, поэтому я добавил инструкцию switch в выражении where
declare @CurrentDate date
set @CurrentDate=GETDATE() ;
select EmployeeID,FirstName+''+isnull(MiddleName,'')+''+LastName as EmployeeName,JoiningDate,DATEDIFF(year, isnull(JoiningDate,''),getdate()) Experience
from HRIS.dbo.EmpMaster
where
ActiveFlag=1 and
CASE
WHEN DATEPART(quarter, getdate()) =1 and month(JoiningDate) BETWEEN 1 and 3 then 1
WHEN DATEPART(quarter, getdate()) =2 and month(JoiningDate) BETWEEN 4 and 6 then 1
WHEN DATEPART(quarter, getdate()) =3 and month(JoiningDate) BETWEEN 7 and 9 then 1
WHEN DATEPART(quarter, getdate()) =4 and month(JoiningDate) BETWEEN 10 and 12 then 1
else 0
END
and DATEDIFF(year, isnull(JoiningDate,''),@CurrentDate)%5=0 and Year(JoiningDate)!=2019
Я получаю сообщение об ошибке, как показано ниже
Error: An expression of non-boolean type specified in a context where a condition is expected, near 'and'.
Я понял, что ошибка заключается в том, что случай вусловие where не возвращает логическое значение.
как записать регистр переключателя, чтобы он возвращал логическое значение
Заранее спасибо!