1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
CREATE PROCEDURE P_PRINCIPALE ()
BEGIN
DECLARE done INT DEFAULT 0; #pour le parcours du curseur
DECLARE tlogin CHAR(200); #pour stocker la première valeur du curseur
DECLARE tcount INT(20); #pour stocker la deuxième valeur du curseur
DECLARE stop TINYINT(1) DEFAULT 0; #pour la condition du WHILE
DECLARE date_debut VARCHAR(50) default "%2008-02-09%"; #Initialisation des variables pour la requête
DECLARE date_fin VARCHAR(50) default "%2008-02-10%";
WHILE (stop=0) DO
DECLARE CursBase CURSOR FOR SELECT login, count(sessionId) AS nb_transactions
FROM `transactions`
WHERE `debutTransac` LIKE date_debut
AND `finTransac` LIKE date_fin
GROUP BY login;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
OPEN CursBase;
REPEAT
FETCH CursBase INTO tlogin,tcount;
#Utilisation des variables tlogin et tcount, MAJ de table, ect ect ...
#Condition pour passer stop à 1, ect ect ...
UNTIL done END REPEAT;
CLOSE CursBase;
# On incrémente les date debut et fin (je n'ai pas mis le code entier)
SET date_debut = date_debut+ "1 jour";
SET date_fin = date_fin+ "1 jour";
END WHILE;
END; |
Partager