Ver Mensaje Individual
  #2  
Antiguo 29-10-2010
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 947
Reputación: 25
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Te escribo algo de codigo para que veas como es.
Este ejemplo

El procedimiento spSuma, recibe un parametro llamado Filtro
y retorna los datos Dato1, Dato2 (Son campos de la tabla) y Dato3, que es un campo que se calcula en base a Dato1+Dato2.

Código SQL [-]
create procedure spSUMA (
--Declaracion de parametros enviados
--al procediemto almacenado
    Filtro integer, ...)
returns (
--Declaracion de variables de retorno
--del procedimiento
    Dato1 integer,
    Dato2 integer,
    Dato3 Integer;
    )
as
--Area de Declaracion de Variables locales...
declare variable Valor integer;
declare variable Letra char(1);
declare variable String varchar(100);

BEGIN
  FOR SELECT CAMPO1, CAMPO2
      FROM TABLA

      WHERE (CAMPO1>: Filtro)
      ORDER BY CAMPO2

      INTO : Dato1, : Dato2;
  DO
  BEGIN

       IF (NOT Dato1 IS NULL) THEN
          Dato1=0;

       IF (NOT Dato2 IS NULL) THEN
          Dato2=2;

       Dato3=Dato1 + Dato2;

       IF (Dato3>100) THEN
       BEGIN
              SELECT DATO3 FROM OTRA_SUMA
              WHERE (Condicion...)
              INTO ato3;
       END

       --Envia las variables de salida
       SUSPEND;
  END
END
Algo asi deberia ser, inclui algunas condiciones de validacion etc...

Espero te sirva...
Responder Con Cita