Ver Mensaje Individual
  #1  
Antiguo 01-02-2013
davidss79 davidss79 is offline
Registrado
NULL
 
Registrado: feb 2013
Posts: 1
Reputación: 0
davidss79 Va por buen camino
Cool There is an error in input of field "procedure body"

Llevo ya bastante rato que no programo en interbase, pero agarre un proyecto y como era pequeño decidí utilizar firebird,
en mi procedimiento solo necesito traer de la tabla de movimientos las entradas y las salidas, restarlas y sacar la existencia de un producto, mi procedimiento esta asi:

CREATE PROCEDURE EXISTENCIA_BODEGA
(V_ID_TIPO INT NOT NULL, V_ID_GRUPO INT NOT NULL, V_ID_PRODUCTO INT NOT NULL, V_ID_BODEGA INT NOT NULL)
RETURNS (EXISTENCIA FLOAT NOT NULL)
AS
DECLARE ENTRADAS TYPE OF FLOAT;
DECLARE SALIDAS TYPE OF FLOAT;
BEGIN
/* Procedure body */
SELECT SUM(D.CANTIDAD)
FROM FER_DETALLE_MOVIMIENTO D INNER JOIN FER_TIPO_MOVIMIENTO T ON D.ID_TIPO_MOVIMIENTO = T.ID_TIPO_MOVIMIENTO
WHERE D.ID_TIPO = :V_ID_TIPO
AND D.ID_GRUPO = :V_ID_GRUPO
AND D.ID_PRODUCTO = :V_ID_PRODUCTO
AND D.ID_BODEGA = :V_ID_BODEGA
AND T.SIGNO = '+' into :ENTRADAS;

IF ENTRADAS = NULL THEN
:ENTRADAS := 0;

SELECT SUM(D.CANTIDAD)
FROM FER_DETALLE_MOVIMIENTO D INNER JOIN FER_TIPO_MOVIMIENTO T ON D.ID_TIPO_MOVIMIENTO = T.ID_TIPO_MOVIMIENTO
WHERE D.ID_TIPO = :V_ID_TIPO
AND D.ID_GRUPO = :V_ID_GRUPO
AND D.ID_PRODUCTO = :V_ID_PRODUCTO
AND D.ID_BODEGA = :V_ID_BODEGA
AND T.SIGNO = '-' into :SALIDAS;

IF SALIDAS = NULL THEN
:SALIDAS := 0;

EXISTENCIA := :ENTRADAS - :SALIDAS;

SUSPEND;
END;

y me sale ese error al querer compilarlo.

Saludos y gracias por su ayuda.
Responder Con Cita