|
Create a table with the age ranges you want to report on and left join to it
e.g.
SET NOCOUNT ON
CREATE TABLE MyData (Age int)
CREATE TABLE MyAgeRange (LowerAge int,
UpperAge int,
AgeRange VARCHAR (20))
go
INSERT INTO MyData VALUES (1)
INSERT INTO MyData VALUES (11)
INSERT INTO MyData VALUES (12)
INSERT INTO MyData VALUES (12)
INSERT INTO MyData VALUES (31)
INSERT INTO MyData VALUES (32)
INSERT INTO MyData VALUES (31)
INSERT INTO MyAgeRange
VALUES (0, 10, '0 - 10 years')
INSERT INTO MyAgeRange
VALUES (11, 20, '11 - 20 years')
INSERT INTO MyAgeRange
VALUES (21, 30, '21 - 30 years')
INSERT INTO MyAgeRange
VALUES (31, 40, '31 - 40 years')
INSERT INTO MyAgeRange
VALUES (41, 200, 'Over 40')
SELECT AgeRange, Count (MyData.Age)
FROM MyAgeRange
LEFT OUTER JOIN MyData ON MyData.Age BETWEEN MyAgeRange.LowerAge AND MyAgeRange.UpperAge
GROUP BY AgeRange
|