Buenas tardes foro.
Mi consulta es si se puede definir un array en firebird. La idea es pasar un parámetro array del cual desconozco su dimensión, y me retorne dimensionado y con los elementos cargados.
Por ejemplo, quiero sumatorias por meses, paso el rango de fechas como parámetros y el array me tiene que devolver valor por cada mes que encuentre en el rango de fechas. Puede ser variable de 1 a 12 ..
Hay alguna forma de hacer esto?
Código SQL
[-]execute block (f1 timestamp, f2 timestamp)
retuns (valores array[float] as
declare variable meses smallint;
begin
meses = datediff(month, :f1, :f2);
SetLength(valores, meses) // alguna forma de crearle la dimensión
//y después ir cargando valores ....
for select
SUM(case extract (MONTH from Fecha) when extract(MONTH from :f1) then cantidad else 0 end) as Mes1,
iif(meses > 1; SUM(case extract (MONTH from Fecha) when extract(MONTH from :f1) +1 then cantidad else 0 end) as Mes2
//etc.
into :valores do
suspend;
end