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
But how would i turn that into a conditional HAVING.... I thought the below would work
Any ideas?
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)
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
Comment