我现在正在学习mysql,我刚刚为自己创建了一个小项目来使用它,但是没有成功。这就是我想要达到的目标:通过计算社保号码来计算总共有多少员工,因为不止一个人可以拥有相同的名字对吗?所以我创造了这个程序。以下内容:

drop procedure if exists out_count_employees;

delimiter ^^
create procedure out_count_employees (IN Social_S_N char(9), OUT SumTotal int)
begin

    select COUNT(dno)
    into SumTotal
    from employee
    where Social_S_N = ssn;


end ^^
delimiter ;


call out_count_employees('ssn', @SumTotal);

select @SumTotal;

我看到一个例子,他们在使用计数,但在这种情况下不起作用…
表名是employee,我使用的字段是ssn,它只存储最大长度为9的int
谢谢你的帮助

最佳答案

where子句不应该出现在那里,它只计算一些雇员。尝试使用到:
如果存在员工辍学程序;

delimiter ^^
create procedure out_count_employees (IN Social_S_N char(9), OUT SumTotal int)
begin

    select COUNT(*)
    into SumTotal
    from employee;

end ^^
delimiter ;

关于mysql - 存储过程-计算行数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49825542/

10-11 10:20