【发布时间】:2020-09-15 11:24:37
【问题描述】:
DELIMITER $$
DROP PROCEDURE IF EXISTS `unitstoamount`;
CREATE DEFINER=`root`@`localhost` PROCEDURE `unitstoamount`( IN units INT(14) , OUT result INT(14))
BEGIN
DECLARE a INT(14) DEFAULT 0;
DECLARE b INT(14) DEFAULT 0;
DECLARE c INT(14) DEFAULT 0;
SELECT twohundred FROM unitsRate INTO a ;
SELECT fivehundred FROM unitsRate INTO b ;
SELECT thousand FROM unitsRate INTO c ;
IF units<200
then
SELECT a*units INTO result;
ELSEIF units<500
then
SELECT (a*200)+(b*(units-200)) INTO result;
ELSEIF units > 500
then
SELECT (a*200)+(b*(300))+(c*(units-500)) INTO result;
END IF;
END$$
DELIMITER ;
【问题讨论】:
-
变量赋值不用
SELECT,使用SET result = a * units; -
你得到什么错误?
-
你在手术前做了
DELIMITER $$吗? -
您可以将前三个选择合二为一:
SELECT twohundred, fivehundred, thousand FROM unitsRate INTO a, b, c -
为什么是一个过程?,这看起来更像一个函数。
标签: php mysql syntax xampp mariadb