Quedaría así, probando a partir de un dia concreto
Código SQL
[-]
select sum(r.kgs), aid.out_date from AUTO_INC_DAY('10/10/2010', 100) AID
left join recepcion r on r.fecha > AID.OUT_DATE and r.fecha <= AID.OUT_DATE +1
where r.ano = 2010
group by aid.out_date
Pero da el mismo resultado que con mi consulta original
Código SQL
[-]
select d.dia, rm.suma from dias d
left join
(select extract(day from fecha) as dia, extract(month from fecha) as mes, sum(kgs) as suma
from RECEPCION
where ano = 2010
group by dia, mes ) as rm on d.iddia = rm.dia
where rm.mes = 12
El problema es que cuando encuentra un dia en que no hay Recepción, por ejemplo un domingo, no aparece el valor 0 para ese día, sino que no aparece nada, es decir, no evalua SUM cuando encuentra NULL.
Aunque lo que no entiendo es porque no funciona el LEFT JOIN, si en la tabla de la izquierda aparece un valor, por ejemplo el dia 1, debería aparecer el día 1 en el resultado, aunque en la tabla de la derecha no exista el día 1
Un saludo