Hey Guys,

I have a huge statement loads of if statements in... and its getting bigger.

On closer inspection there is only 3 difference in the select statement. so I thought I could cut the whole thing down to just 1 select statement if I have a conditional Having.

I've simplified the IF statement down a bit to give you an idea of what im trying to achieve

Code:
IF @month <> 0 & @diffFuture = 0 & @showDate <> 0
	
	HAVING (events.eventID = @eventID) 
	AND 	(events.enabled = 1)
	AND 	(MONTH(tickets_1.ticketStartDate) = MONTH(GETDATE())) 
	AND	(YEAR(tickets_1.ticketStartDate) = YEAR(GETDATE()))

IF @month <> 0 & @diffFuture <> 0 & @showDate <> 0

	HAVING (events.eventID = @eventID) 
	AND 	(events.enabled = 1)
	AND 	(DATEPART(MONTH,tickets_1.ticketStartDate) = MONTH(@start)) 
	AND 	(DATEPART(YEAR,tickets_1.ticketStartDate) = YEAR(@start))

ELSE							
	
	HAVING (events.eventID = @eventID) 
	AND 	(events.enabled = 1)		
	AND 	(DATEPART(MONTH,tickets_1.ticketStartDate) = @month) 
	AND	(DATEPART(YEAR,tickets_1.ticketStartDate) = @year)
But how would i turn that into a conditional HAVING.... I thought the below would work

Code:
        HAVING (events.eventID = @eventID) 
	AND 	(events.enabled = 1)	
        CASE
	         WHEN @month <> 0 & @diffFuture = 0 & @showDate <> 0 THEN
                  	    (MONTH(tickets_1.ticketStartDate) = MONTH(GETDATE())) 
	                    AND	(YEAR(tickets_1.ticketStartDate) = YEAR(GETDATE()))
                WHEN...
        END
Any ideas?