Declare @dt datetime = GETDATE()
SELECT
COUNT (CASE WHEN SM.dateadded >= DATEADD(month, -12, @dt) AND SM.dateadded < @dt THEN 1 ELSE 0 END) as less_than_12_months_old,
COUNT (CASE WHEN SM.dateadded >= DATEADD(month, -24, @dt) AND SM.dateadded < DATEADD(month, -12, @dt) THEN 1 ELSE 0 END) as between_12_and_24months_old,
COUNT (CASE WHEN SM.dateadded < DATEADD(month, -24, @dt) THEN 1 ELSE 0 END) as older_than_24_months_old
from SessionMap SM
inner join orders O on O.orderKey = SM.orderKey
where (SM.sessionKey = 0 OR SM.userKey = 0) and SM.type = 'BW'
--and O.orderDate > DATEADD(MONTH,-12,GETDATE())
AND O.void <> 'Y'
Declare @dt datetime = GETDATE()
SELECT
SUM (CASE WHEN SM.dateadded >= DATEADD(month, -12, @dt) AND SM.dateadded < @dt THEN 1 ELSE 0 END) as less_than_12_months_old,
SUM (CASE WHEN SM.dateadded >= DATEADD(month, -24, @dt) AND SM.dateadded < DATEADD(month, -12, @dt) THEN 1 ELSE 0 END) as between_12_and_24months_old,
SUM (CASE WHEN SM.dateadded < DATEADD(month, -24, @dt) THEN 1 ELSE 0 END) as older_than_24_months_old
from SessionMap SM
inner join orders O on O.orderKey = SM.orderKey
where (SM.sessionKey = 0 OR SM.userKey = 0) and (SM.type = 'BW' or SM.type = 'SBW')
--and O.orderDate > DATEADD(MONTH,-12,GETDATE())
AND O.void <> 'Y'
GROUP BY O.availStateKey
Select HowOld, count(HowOld) As Qty
From (Select
Case
when datediff(Month, dateadded, getdate()) < 12 then '<12'
when datediff(Month, dateadded, getdate()) between 12 and 24 then '12-24'
else '>24' End As HowOld
From #w) As D (HowOld)
Group By HowOld
By any chance do you mean count of cars?
Open in new window
This methodology and other things to do with CASE is illustrated in my EE article SQL Server CASE Solutions.