How can I add a condition inside the WHERE CLAUSE based on a case or if condition?
SELECT C.CallID, A.GroupName,A.Assignee, C.CallStatus, C.RecvdDate, C.Urgency, C.Category, C.CallType, C.KPIreport, C.CallDesc,
DATEDIFF(DAY, C.RecvdDate,GETDATE()) [DurationInDays],
CASE 
    WHEN DATEDIFF(DAY, C.RecvdDate,GETDATE()) < 30 
        THEN 'Less than 30'
    WHEN DATEDIFF(DAY, C.RecvdDate,GETDATE()) >= 30 AND DATEDIFF(DAY, C.RecvdDate,GETDATE()) < 60  
        THEN '30-59'
    WHEN DATEDIFF(DAY, C.RecvdDate,GETDATE()) >= 60 AND DATEDIFF(DAY, C.RecvdDate,GETDATE()) < 90  
        THEN '60-89'
    WHEN DATEDIFF(DAY, C.RecvdDate,GETDATE()) >= 90 AND DATEDIFF(DAY, C.RecvdDate,GETDATE()) < 120  
        THEN '90-119'
    WHEN DATEDIFF(DAY, C.RecvdDate,GETDATE()) >= 120 
        THEN 'Over 120'
END 
AS 'AgeClassification'
FROM
    CallLog C
    INNER JOIN Asgnmnt A ON C.CallID = A.CallID
WHERE
    A.HEATSeq =(SELECT MAX(HEATSeq)FROM Asgnmnt WHERE (CallID = C.CallID))
    AND UPPER(A.GroupName) = @GroupName
    AND LOWER(A.EMail) IN (@Assignee)
    AND UPPER(C.CallStatus) = @RecordType
    AND 
    CASE WHEN UPPER(C.CallStatus) = 'CLOSED' THEN
            C.ClosedDate >= @StartDate AND C.ClosedDate <= @EndDate
         WHEN UPPER(C.CallStatus) = 'REQUEST TO CLOSE' THEN
            A.DateResolv >= @StartDate AND A.DateResolv <=@EndDate
    END
ORDER BY A.GroupName, A.Assignee,  C.RecvdDate, C.CallID
My logic here is that, when the @RecordType is 'CLOSED', the WHERE clause must validate the closed date and if the @RecordType is 'REQUEST TO CLOSE' then it must validate the resolved date.
I also tried doing this using IF statement but I get the same error.
 
     
     
     
    