Hace poco hice una consulta en el foro :
http://www.clubdelphi.com/foros/showthread.php?t=72512
Finalmente el Procedimiento Almacenado que dejé es :
Código SQL
[-]CREATE OR ALTER PROCEDURE AUTO_INC_DATE (
in_first_date date,
in_count_days integer)
returns (
out_date date)
as
begin
While (IN_COUNT_DAYS > 0) do begin
OUT_DATE = IN_FIRST_DATE;
IN_FIRST_DATE = IN_FIRST_DATE + 1;
IN_COUNT_DAYS = IN_COUNT_DAYS - 1;
SUSPEND;
end
end
Esto te permite utilizar AUTO_INC_DATE en la consulta principal, o incluso en el Join, y te facilita enormemente cualquier consulta, no sólo esta, sino cualquier otra que necesites.
Tu consulta podría quedar entonces :
Código SQL
[-]Select R.dia, rm.suma from AUTO_INC_DAY(Fecha, 31) AID
left join RECEPCION R
on R.DIA = AID.OUT_DATE
... el resto te lo dejo a tí ...