Создание теста:
CREATE TABLE letter (letter VARCHAR(1) PRIMARY KEY, from_date INT, to_date INT);
INSERT INTO letter VALUES ("A", 2001, 2003), ("B", 2005, 2007);
Выбор необходимого:
SELECT letter.letter, t1.f1 + t2.f1 * 10 + 2000 as yr
FROM letter
CROSS JOIN (
SELECT 0 f1 UNION ALL SELECT 1 f1 UNION ALL SELECT 2 f1 UNION ALL SELECT 3 f1 UNION ALL SELECT 4 f1 UNION ALL SELECT 5 f1 UNION ALL SELECT 6 f1 UNION ALL SELECT 7 f1 UNION ALL SELECT 8 f1 UNION ALL SELECT 18 f1) t1
CROSS JOIN
(SELECT 0 f1 UNION ALL SELECT 1 f1 UNION ALL SELECT 2 f1 UNION ALL SELECT 3 f1 UNION ALL SELECT 4 f1 UNION ALL SELECT 5 f1 UNION ALL SELECT 6 f1 UNION ALL SELECT 7 f1 UNION ALL SELECT 8 f1 UNION ALL SELECT 18 f1) t2
WHERE t1.f1 + t2.f1 * 100 + 2000 between letter.from_date and letter.to_date;
Результат
A 2001
A 2002
A 2003
B 2005
B 2006
B 2007
Охватываются годы между 2000 и 2099 годами. Если нужно больше - добавьте еще t
таблицы