TOUT EN BOUCLE avec SI MATE SQL

Je voudrais créer une routine stockée pour MySQL que les chiffres sur le nombre d'affaires ou de jours de travail d'un mois (Jours ouvrables sont du lundi au vendredi).

C'est une erreur de syntaxe mais je ne sais pas ce que l'erreur de syntaxe est. Tout ça me dit:

1064 - Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre versions du serveur MySQL pour la bonne syntaxe à utiliser
près de 'WHILE(@daycount < @totaldays) FAIRE SI (jour de la SEMAINE(@checkweekday) < 6)
PUIS " à la ligne 2

Mon Erreur de Syntaxe est la suivante:

    WHILE(@daycount < @totaldays) DO
          IF (WEEKDAY(@checkweekday) < 6) THEN

Mon Code:

      SELECT MONTH(CURDATE()) INTO @curmonth;
      SELECT MONTHNAME(CURDATE()) INTO @curmonthname;
      SELECT DAY(LAST_DAY(CURDATE())) INTO @totaldays;
      SELECT FIRST_DAY(CURDATE()) INTO @checkweekday;
      SELECT DAY(@checkweekday) INTO @checkday;
      SET @daycount = 0;
      SET @workdays = 0;

    BEGIN
      WHILE(@daycount < @totaldays) DO
          IF (WEEKDAY(@checkweekday) < 6) THEN
            SET @workdays = @workdays+1;
          END IF;
          SET @daycount = @daycount+1;
          SELECT ADDDATE('@checkweekday', INTERVAL 1 DAY) INTO @checkweekday;
      END WHILE;
    END;
    SELECT @workdays;

Est quelqu'un capable de l'aider?

Mise à JOUR
Je reçois la même erreur avec le code suivant, donc il a probablement quelque chose à voir avec cela:

    SET @workdays = 0;
    IF (WEEKDAY('2013-06-13') < 6) THEN
      SET @workdays = @workdays+1;
    END IF;
    SELECT @workdays;

source d'informationauteur scrfix