Ver Mensaje Individual
  #1  
Antiguo 25-11-2012
NizamUlMUlk NizamUlMUlk is offline
Registrado
 
Registrado: mar 2010
Posts: 8
Reputación: 0
NizamUlMUlk Va por buen camino
array en Firebird

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

Última edición por Casimiro Notevi fecha: 25-11-2012 a las 21:54:17. Razón: no lo terminé, se movió a otra página antes de hacerlo
Responder Con Cita