#1320 - 在FUNCTION MYSQL中找不到RETURN

时间:2016-12-05 18:33:29

标签: mysql

我尝试在mysql中创建一个函数但是 错误是:#1320 - 在FUNCTION中找不到RETURN 谢谢你的帮助

DELIMITER $$  
CREATE FUNCTION `bascar20_GPCSAS`.`getPrice`(codRef integer(11), ultimoInventario varchar(50), fechaInicial varchar(50), fechaFinal varchar(50))
    RETURNS INT(11)
    LANGUAGE SQL
    NOT DETERMINISTIC

    CONTAINS SQL

    SQL SECURITY DEFINER

    COMMENT ''
    -- SET @codRef := 105;
    -- SET @ultimoInventario := "2016-10-31";
    -- SET @fechaInicial := '2016-11-01';
    -- SET @fechaFinal := '2016-11-30';

        SET @S := (SELECT IF(COUNT(*)=0,0,Saldo) FROM inventarios_finales WHERE FK_codigo_referencia = @codRef and fecha_inventario = @ultimoInventario AND FK_bodega = 1001); 
        SET @VU := (SELECT IF(COUNT(*)=0,0,valorUnitario) FROM inventarios_finales WHERE FK_codigo_referencia = @codRef and fecha_inventario = @ultimoInventario AND FK_bodega = 1001); 
        SET @VT := @S * @VU;    
    BEGIN

        DECLARE returnVal INT(11);  

        SELECT ROUND(T.precio,0) INTO returnVal
        FROM (
        SELECT  Fecha, referecia, Tipo, Cantidad, PrecioUnitario, IF(Tipo='EA'||Tipo='EM',(@S:=@S+Cantidad),(@S:=@S-Cantidad)) as SALDO ,IF(Tipo='EA'||Tipo='EM',(@VT:=@VT+(Cantidad*PrecioUnitario)),@VT:=@VT-(Cantidad*@VU)) as valortotal,IF(Tipo='EA'||Tipo='EM',@VU:=@VT/@S,@VU) as precio
        FROM documentos
        WHERE PrecioUnitario != 0 and Cantidad != 0 and Fecha BETWEEN @fechaInicial and @fechaFinal and NombreArticulo = @codRef and (Tipo = 'RM' or Tipo = 'EA' or Tipo = 'EM')
        ORDER BY Fecha
        ) T
        ORDER BY T.Fecha DESC
        LIMIT 1

        RETURN returnVal;
    END$$

错误是:

  

1320 - 在FUNCTION

中找不到RETURN

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

这是因为您在;语句之前遗漏了RETURN,如下所示,已发布的代码。

 .....<rest of code>.....
 ORDER BY Fecha
        ) T
        ORDER BY T.Fecha DESC
        LIMIT 1       <----------- Here

        RETURN returnVal;