MySQL存储过程中的错误

时间:2015-07-23 10:19:42

标签: mysql

我有一点问题而我没有解决它!

CREATE PROCEDURE selection_socioprof(IN age INT,IN prof varchar(50))
BEGIN

declare calcul number;
declare prc_cat number;
declare nb_particip number;
SELECT COUNT(*) INTO nb_particip FROM questionnaire;
SELECT COUNT(*) INTO calcul 
FROM questionnaire
where question2=age AND question3=prof;
prc_cat:=(calcul/nb_particip)*100;
concat('le pourcentage des participants aux jeux SMS ayant la
 catégorie        socioprofessionnelle choisie est',prc_cat);

END;

这是错误:

  

1064 - 您的SQL语法出错;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   在第3行'number'附近

2 个答案:

答案 0 :(得分:0)

使用以下代码:

delimiter $$
CREATE PROCEDURE selection_socioprof(IN age INT,IN prof varchar(50))
 BEGIN
 declare calcul int(10);
 declare prc_cat int(10);
 declare nb_particip int(10);
 SELECT COUNT(*) INTO nb_particip FROM questionnaire;
 SELECT COUNT(*) INTO calcul FROM questionnaire where question2=age AND question3=prof;
 set prc_cat=(calcul/nb_particip)*100; 
select concat('le pourcentage des participants aux jeux SMS ayant la catégorie socioprofessionnelle choisie est',prc_cat); END $$
delimiter ;

答案 1 :(得分:0)

尝试:

 DELIMITER //
 CREATE PROCEDURE selection_socioprof(IN age INT,IN prof VARCHAR(50))
 BEGIN
    DECLARE calcul INT; 
    DECLARE prc_cat INT; 
    DECLARE nb_particip INT;

    SELECT COUNT(*) INTO nb_particip FROM questionnaire;
    SELECT COUNT(*) INTO calcul FROM questionnaire  WHERE question2=age AND question3=prof;
    SET prc_cat := (calcul/nb_particip)*100;
    SELECT CONCAT('le pourcentage des participants aux jeux SMS ayant la catégorie socioprofessionnelle choisie est',prc_cat);

  END; //
  DELIMITER //