WHILE LOOP z IF STATEMENT MYSQL

Chciałbym stworzyć zapisaną procedurę dla MySQL, która określa liczbę dni roboczych lub roboczych przez miesiąc (dni robocze są od poniedziałku do piątku).

Jest to błąd składniowy, ale nie wiem, jaki jest błąd składni. Mówi mi tylko:

1064 - Wystąpił błąd w składni SQL; sprawdź instrukcję, która odpowiada twojej wersji serwera MySQL, aby uzyskać poprawną składnię w pobliżu 'WHILE (@daycount <@totaldays) ZROBIĆ JEŻELI (DZIENNIK (@checkweekday) <6) THEN' w linii 2

Mój błąd składniowy jest następujący:

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

Mój kod:

      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;

Czy ktoś jest w stanie pomóc?

AKTUALIZACJA Otrzymuję ten sam błąd z następującym bitem kodu, więc prawdopodobnie ma to coś wspólnego z tym:

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

questionAnswers(1)

yourAnswerToTheQuestion