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
Vous devez vous connecter pour publier un commentaire.
J'ai découvert que vous ne pouvez pas avoir des conditions en dehors de la procédure stockée dans le serveur mysql. C'est pourquoi l'erreur de syntaxe. Dès que j'ai mis le code que j'avais besoin entre
Juste pour les autres:
Si vous n'êtes pas sûr de savoir comment créer une routine dans phpmyadmin, vous pouvez mettre ceci dans la requête SQL
Exécuter la requête. Cela va créer une procédure stockée ou stockées routine nommée test2. Maintenant, allez dans les routines onglet et modifier la procédure stockée pour être ce que vous voulez. Je suggère également la lecture de http://net.tutsplus.com/tutorials/an-introduction-to-stored-procedures/ si vous commencez avec des procédures stockées.
La first_day fonction, vous aurez besoin de:
Comment obtenir le premier jour de chaque mois correspondant en mysql?
Montrant la Procédure de travail
Il suffit d'ajouter la ligne suivante en dessous de la FIN de TOUT et au-dessus de la FIN de
Alors utiliser le code suivant dans la Fenêtre de Requête SQL.
REMARQUE: Si vous utilisez cette s'il vous plaît gardez à l'esprit que ce code ne prend pas en compte à l'échelle nationale observée vacances (ou de vacances).