Следующая процедура после вызова вызывает ошибку «Результат возвращает более одной строки», где заданное значение ввода - только один параметр.
DELIMITER $$
CREATE PROCEDURE p( IN en int,OUT ename int, OUT incr_sal int, OUT s_sal
int, OUT count1 int)
BEGIN
DECLARE sal INT DEFAULT 0;
DECLARE cnt int DEFAULT 0;
DECLARE emp_name int DEFAULT 0;
SELECT `ename`,`salary` INTO sal, emp_name
FROM works w
WHERE `ename`=en;
SELECT COUNT(m.empname) INTO cnt
FROM manages m
WHERE m.empname=en
GROUP BY m.empname;
SET @ename=emp_name; SET @incr_sal=sal;
IF sal>50000 && cnt>2 THEN SET sal=sal+((sal*5)/100);
ELSEIF sal>50000 && sal<60000 && cnt>=1 THEN SET sal=sal+((sal*2)/100);
ELSEIF sal>10000 && cnt=0 THEN SET sal=sal+((sal*1)/100);
end IF;
SET @s_sal=sal;
SET @count1=cnt;
SELECT @ename,@incr_sal,@s_sal,@count1;
END $$
DELIMITER ;
CALL p('Sam',@ename,@incr_sal,@s_sal,@cnt);