"ayuda de vistas"

From: "Maria Eugenia Paradas Mendez" <mpm_maru(at)hotmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: "ayuda de vistas"
Date: 2006-05-26 15:19:55
Message-ID: BAY118-F33BA2DE80CE055846B2607EB9E0@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Buenos dias!

Tengo una duda, cuando utilizo vistas en iteraciones, los datos que me
devuelven son iguales, tomando como referencia el primer dato encontrado.

Les explico, utilizo una vista que segun diferentes parametros que le
suministro mediante una funcion (en donde se genera la vista) me retorna un
conjun to de datos, en donde yo los uso para realizar algunos calculos
dentros de una iteracion en otra funcion en donde llamo a la de la vista,
mediante el ciclo voy calculados con parametros diferentes; y justo antes de
que se incremente el ciclo almaceno los datos en un tipo de dato. Al
finalizar el ciclo, la funcion me deberia retonar todas filas calculadas
segun los diferentes parametros que se le suministraron. Pero no es lo que
me retorna. Devuelve el mismo registro en todas las filas, con referncia al
primer calculo encontrado.

Que puedo hacer?
Para que cuando retorno mi tipo de dato las filas obtenidas tengan los datos
por registro y no tome siempre el primer calculo.

nota: existe un campo dentro del tipo de dato que no es un calculo y este
cambia en cada registro nuevo dentro de la iteracion pero todos los otros
campos que son calculos de la vista siempre son el primero

ESTA ES LA ITERACION

while(cont<=(array_upper(arresub,1))) loop
--fecha solicitud (1)
fecsol:= arresub[cont-1]||' al '||arresub[cont];--(CAMPO QUE NO
REQUIERE CALCULO Y CAMBIA)
--verificar existencia de solicitudes en el subrango(2)
arrex[1]:=arre[2]; arrex[2]:=cast(arresub[cont-1] as varchar);
arrex[3]:=cast(arresub[cont] as varchar);
sol:=(select valobtsolprovsubran(arrex));--(FUNCION QUE GENERA
VISTA SEGUN UN RANGO DE FECHAS Y DEVUELVE UN ENTERO CON EL TOTAL)
if (sol =0) then
raise exception '1029';
else

--(CALCULOS DENTRO DEL SUBRANGO QUE NO SE ACTUALIZAN, SOLO GUARDA LA
PRIMERA A PARICION Y EL PRIMER CALCULO)
--obtener y calcular autorizadas(6)
aut:= (select obteneryvalidar_solicitudesautorizadassubrango(arre));
--calcular atendidas y pendiente(3,4)
ate:= aut;
pen:= (sol- ate);
--calcular modificadas(5)
mod:= (select calcular_modificadas(arre));
--calcular solicitudes despachada(7)
des:=(select calcular_despachadas(arre));
--obtener monto de las solicitudes originadas(8)
monori:= (select calcular_monto_originado());
--llenar tipo de dato
--(LLENO EL TIPO DE DATO Y LO RETORNO FUERA DE LA ITERACION)
select into freport fecsol as fecha,sol as solic,ate as atend,pen as
pendi ,mod as modif,aut as autor,des as despa,monori as monto;
return next freport;
end if;--existen solicitudes subrango
cont:= cont +2;
end loop; -- fin de c

agradeciendo de antemano
Maria Eugenia Paradas

_________________________________________________________________
Visita MSN Latino Entretenimiento: ¡música, cine, chismes, TV y más...!
http://latino.msn.com/entretenimiento/

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Agustin Casiva 2006-05-26 15:28:34 Re: Fwd: Consulta Ordenamiento
Previous Message Alvaro Herrera 2006-05-26 14:59:28 Re: Fwd: Consulta Ordenamiento