Never mind...DECLARE @Sample TABLE (Name VARCHAR(10), Status INT, Month INT)INSERT @SampleSELECT 'apple', 1, 1 UNION ALLSELECT 'apple', 2, 2 UNION ALLSELECT 'orange', 3, 1 UNION ALLSELECT 'orange', 1, 1 UNION ALLSELECT 'apple', 2, 2SELECT Status, SUM(Number) AS Number, MonthFROM ( SELECT Status, COUNT(*) AS Number, Month FROM @Sample GROUP BY Status, Month UNION ALL SELECT s.Status, 0, v.Number FROM @Sample AS s INNER JOIN master..spt_values AS v ON v.Type = 'P' WHERE v.Number BETWEEN 1 AND 12 GROUP BY s.Status, v.Number ) AS dGROUP BY Status, MonthORDER BY Status, Month
E 12°55'05.25"N 56°04'39.16"