MySQL ERROR 1415 (0A000): не разрешено возвращать набор результатов из функции - PullRequest
0 голосов
/ 13 мая 2018

Я пытаюсь написать функцию mysql, которая извлекает данные из разных таблиц и сохраняет в переменные. Но я получаю сообщение об ошибке, как, ОШИБКА 1415 (0A000): не разрешено возвращать набор результатов из функции

Пожалуйста, пожалуйста, помогите мне .... Мой код, как показано ниже,

delimiter //
CREATE FUNCTION FUN_test(productId INT,quantity INT) RETURNS DOUBLE 
BEGIN
   DECLARE discountPer DOUBLE DEFAULT 0;
   DECLARE unitPrice DOUBLE;
   DECLARE _discountId INT DEFAULT 0;
   DECLARE _lowerLimit INT DEFAULT 0;
   DECLARE _higherLimit INT DEFAULT 0;

   SELECT @unitPrice := `SellingUnitPrice` FROM `TBL_PRODUCT_MASTER` WHERE `Id` = productId;


SELECT @discountPer := discDetail.`DiscountPercentage`, @_discountId := disc.Id, @_lowerLimit := discDetail.LowerLimit, @_higherLimit = discDetail.HigherLimit FROM `TBL_DISCOUNT_DETAIL` AS discDetail , `TBL_DISCOUNT` AS disc, TBL_PRODUCT_DISCOUNT AS prodDisc WHERE disc.`DiscountStartDate` < NOW() AND disc.`DiscountEndDate` > NOW() AND disc.`SchemeType` = 'AMOUNT' AND discDetail.DiscountId = disc.Id AND prodDisc.productId = productId AND prodDisc.discountId = disc.Id AND prodDisc.`IsEnabled` = 1 AND disc.`IsEnabled` = 1 AND (quantity * unitPrice) >= discDetail.LowerLimit and ((quantity * unitPrice) <= discDetail.HigherLimit);

  RETURN discountPer;
END//
delimiter ;

1 Ответ

0 голосов
/ 13 мая 2018

Попробуйте ниже sql.

delimiter //
CREATE FUNCTION FUN_test(productId INT,quantity INT) RETURNS DOUBLE 
BEGIN
   DECLARE discountPer DOUBLE DEFAULT 0;
   DECLARE unitPrice DOUBLE;
   DECLARE _discountId INT DEFAULT 0;
   DECLARE _lowerLimit INT DEFAULT 0;
   DECLARE _higherLimit INT DEFAULT 0;

   SELECT `SellingUnitPrice` INTO @unitPrice FROM `TBL_PRODUCT_MASTER` WHERE `Id` = productId;

SELECT  discDetail.`DiscountPercentage` , disc.Id INTO @discountPer, @_discountId FROM `TBL_DISCOUNT_DETAIL` AS discDetail , `TBL_DISCOUNT` AS disc, TBL_PRODUCT_DISCOUNT AS prodDisc WHERE disc.`DiscountStartDate` < NOW() AND disc.`DiscountEndDate` > NOW() AND disc.`SchemeType` = 'AMOUNT' AND discDetail.DiscountId = disc.Id AND prodDisc.productId = productId AND prodDisc.discountId = disc.Id AND prodDisc.`IsEnabled` = 1 AND disc.`IsEnabled` = 1 AND (quantity * unitPrice) >= discDetail.LowerLimit and ((quantity * unitPrice) <= discDetail.HigherLimit);


  RETURN discountPer;
END//
delimiter ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...