si lo que quieres es saber el total por día de un campo de una tabla creo que bastaría así y al final te da el total del mes, sin tener que crear ninguna tabla adicional, esto funciona con SQL Server, pero espero te de una idea si no funciona con FireBird
Suerte
Código SQL
[-]
select
sum(case day(fecha) when 1 then Kgs end) '1',
sum(case day(fecha) when 2 then Kgs end) '2',
sum(case day(fecha) when 3 then Kgs end) '3',
sum(case day(fecha) when 4 then Kgs end) '4',
sum(case day(fecha) when 5 then Kgs end) '5',
sum(case day(fecha) when 6 then Kgs end) '6',
sum(case day(fecha) when 7 then Kgs end) '7',
sum(case day(fecha) when 8 then Kgs end) '8',
sum(case day(fecha) when 9 then Kgs end) '9',
sum(case day(fecha) when 10 then Kgs end) '10',
sum(case day(fecha) when 11 then Kgs end) '11',
sum(case day(fecha) when 12 then Kgs end) '12',
sum(case day(fecha) when 13 then Kgs end) '13',
sum(case day(fecha) when 14 then Kgs end) '14',
sum(case day(fecha) when 15 then Kgs end) '15',
sum(case day(fecha) when 16 then Kgs end) '16',
sum(case day(fecha) when 17 then Kgs end) '17',
sum(case day(fecha) when 18 then Kgs end) '18',
sum(case day(fecha) when 19 then Kgs end) '19',
sum(case day(fecha) when 20 then Kgs end) '20',
sum(case day(fecha) when 21 then Kgs end) '21',
sum(case day(fecha) when 22 then Kgs end) '22',
sum(case day(fecha) when 23 then Kgs end) '23',
sum(case day(fecha) when 24 then Kgs end) '24',
sum(case day(fecha) when 25 then Kgs end) '25',
sum(case day(fecha) when 26 then Kgs end) '26',
sum(case day(fecha) when 27 then Kgs end) '27',
sum(case day(fecha) when 28 then Kgs end) '28',
sum(case day(fecha) when 29 then Kgs end) '29',
sum(case day(fecha) when 30 then Kgs end) '30',
sum(case day(fecha) when 31 then Kgs end) '31',
sum(Kgs) Total
from Recepcion
where fecha between '20110101' and '20110131'