Ver Mensaje Individual
  #4  
Antiguo 02-02-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Además de lo que bién te señaló birmain, noto que en la declaración de variables estas utilizando TYPE OF FLOAT, como si FLOAT se tratase de un dominio. Y también pareciera que están sobrando algunos ':'.

Intentá de este modo:
Código SQL [-]
SET TERM ^ ;

CREATE PROCEDURE PROC_TMP(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 FLOAT;
  DECLARE SALIDAS FLOAT;
BEGIN
  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^

SET TERM ; ^

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita