Can you use a WHERE Clause instead of the having Clause and dropping the GROUP
BY Clause? ALSO, you might look at using an IN operator in the Where Clause to
shorten the code and make it more readable.
SELECT Sum(`Data Entry`.`Committment Amount`) AS 'Sum of Committment Amount'
FROM `G:\data\O\OA\Stew\Master Budget`.`Data Entry` `Data Entry`
WHERE (`Data Entry`.`IT43 Class` IN
('1.A',1.A.1','1.A.2','1.B','1.B.1','1.B.2','1.B.3','1.B.3.a',
'1.B.3.b','1.C','1.C.1','1.C.2','1.C.2.a','1.C.2.b','1.C.3',
'1.C.3.a',1.C.3.b','1.C.4','1.C.4.a','1.C.4.b','1.C.5','1.D',
'1.D.1','1.D.2',1.D.3','1.D.4','1.D.5','1.D.5.a','1.D.5.b',
'1.D.6','1.D.6.a','1.D.6.b','1.D.6.c')
AND `Data Entry`.`Committment Date`>={ts '2004-10-01 00:00:00'} AND
`Data Entry`.`Committment Date`<={ts '2004-10-31 00:00:00'})
ALL THE ABOVE is UNTESTED.