You should create a calendar table that has the beginning of each month in the range of interest - sort of like shown in the first query below. Once you have that, join your table to that table like shown in the second query. I am only showing the general scheme of how to approach it; you will need to tailor it to your precise needs. If you need help with that, post some consumable code(i.e., code that someone can copy and paste to run on their computer, like the first query that I posted below)-- Query 1 Create a monthly calendar and populate it.CREATE TABLE #calendar(Dt DATETIME);WITH cte AS( SELECT CAST('20000101' AS DATETIME) AS Dt UNION ALL SELECT DATEADD (mm, 1, Dt) FROM cte WHERE Dt < '20151231')INSERT INTO #Calendar SELECT * FROM cteOPTION (MAXRECURSION 0)-- Query 2 join your table to the calendar table like shown belowSELECT INV_NO, c.Dt, CASE WHEN DATEDIFF(mm,INSTALL_DATE,dt) BETWEEN 0 AND 12 THEN '0 - 12 Months' WHEN DATEDIFF(mm,INSTALL_DATE,dt) BETWEEN 13 AND 29 THEN '13 - 29 Months' WHEN DATEDIFF(mm,INSTALL_DATE,dt) BETWEEN 30 AND 36 THEN '30 - 36 Months' -- other ranges here ELSE 'N/A' ENDFROM #Calendar c INNER JOIN YourActualTable i ON i.Install_Date <= c.Dt;