4

私は周りを見回しましたが、他の解決策はここではうまくいかないようです。MySQLでこの関数を作成しようとすると、「関数の戻り値が見つかりません」というエラーが発生し続けます。なぜですか?

CREATE FUNCTION `mydb`.`myfunction`(Name varchar(20))
RETURNS int
LANGUAGE SQL
NOT DETERMINISTIC
SELECT SUM(Transaction.Bought) INTO @Qty FROM Transaction WHERE Transaction.Name = Name;
RETURN @Qty
4

3 に答える 3

1

または、これを試してください、

DELIMITER $$
CREATE FUNCTION `myfunction`(Name varchar(20))
RETURNS int
LANGUAGE SQL
NOT DETERMINISTIC
BEGIN

  DECLARE returnVal int;

  SELECT SUM(`Transaction`.Bought) INTO returnVal 
  FROM `Transaction` 
  WHERE `Transaction`.Name = Name;

  RETURN returnVal;

END$$
DELIMITER ;
于 2012-09-17T01:15:52.047 に答える
1

これを試して

DELIMITER $$
CREATE FUNCTION `myfunction`(`Name` VARCHAR(20) CHARSET utf8) RETURNS INT NOT DETERMINISTIC
READS SQL DATA
MAIN: BEGIN
DECLARE returnVal int;
SELECT SUM(`Transaction`.Bought) INTO returnVal FROM `Transaction` WHERE `Transaction`.Name = Name;
RETURN returnVal;
END MAIN;$$
DELIMITER ;
于 2012-09-17T01:41:34.680 に答える
0
delimiter //
create function myfun1234 (i int,j int)
returns int 
begin 
      declare x int ;
       declare    y int ;
        declare  z int ;
      set x=10;
      set y=20;
      if (1<=x && j>=y )then 
      set z=i+j;
      end if;
    return z;
      end; //


-- error1   FUNCTION myfun12 ended without RETURN 
于 2015-05-19T01:20:19.537 に答える