
USE dbtest16;
DELIMITER
CREATE PROCEDURE get_count_by_limit_total_salary(IN limit_total_salary DOUBLE, OUT total_count INT )
BEGIN
DECLARE sum_sal DOUBLE DEFAULT 0.0;
DECLARE emp_sal DOUBLE;
DECLARE emp_count INT DEFAULT 0;
DECLARE emp_cursor CURSOR FOR SELECT salary FROM employees ORDER BY salary DESC;
OPEN emp_cursor;
REPEAT
FETCH emp_cursor INTO emp_sal;
SET sum_sal= sum_sal +emp_sal;
SET emp_count = emp_count +1;
UNTIL sum_sal >= limit_total_salary
END REPEAT;
SET total_count = emp_count;
CLOSE emp_cursor;
END
DELIMITER;
CALL get_count_by_limit_total_salary(200000,@total_count);
SELECT @total_count;