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;