MySQL ERROR # 1415 - не разрешено возвращать набор результатов из функции - PullRequest
0 голосов
/ 05 ноября 2018

Мой вопрос касается функции, возвращающей только одно значение, но я все еще получаю эту ошибку, так что я должен получить средний день между датой заказа и датой отгрузки, запрос делает это и возвращает мне только одно значение, которое является средним. Если я использую только инструкцию SELECT вне функции, я получаю один ответ по столбцу / строке 8.4920.

Как я могу это исправить, пожалуйста. Спасибо.

DELIMITER //
DROP FUNCTION IF EXISTS OrderFulfilmel//

CREATE FUNCTION  OrderFulfilmel(average int) RETURNS DOUBLE Deterministic
BEGIN

SELECT AVG(DATEDIFF(ShippedDate, OrderDate)) AS averageDay

FROM Orders;

END//
DELIMITER ;

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Я не понимаю, почему у вашей функции есть аргумент. Итак, я думаю:

DELIMITER //
DROP FUNCTION IF EXISTS OrderFulfilmel//

CREATE FUNCTION  OrderFulfilmel ()
    RETURNS DOUBLE Deterministic
BEGIN
    DECLARE @diff DOUBLE;

    SELECT @diff := AVG(DATEDIFF(ShippedDate, OrderDate)) AS averageDay
    FROM Orders;

    RETURN @diff;
END//
DELIMITER ;
0 голосов
/ 05 ноября 2018

Вы можете попробовать ниже

CREATE FUNCTION OrderFulfilmel(average int) RETURNS DOUBLE Deterministic
BEGIN
  DECLARE var_name DECIMAL(10,2);
  SET var_name = 0;
  SELECT AVG(DATEDIFF(ShippedDate, OrderDate)) INTO var_name
    FROM Orders;
  RETURN var_name;
END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...