Bonjour, je suis en train de construire une function en MySQL et je dois boucler sur un SELECT.
Je fais ceci pour le moment
Ceci est un début, et j'ai comme résultat une itération de trop.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 DELIMITER $$ DROP FUNCTION IF EXISTS `pontaury`.`calcul_l_deux`$$ CREATE DEFINER=`root`@`localhost` FUNCTION `calcul_l_deux`(date1 date,date2 date,item varchar (255),groupe varchar (255)) RETURNS varchar(255) BEGIN DECLARE resultat varchar(255) DEFAULT 0; DECLARE iSum BIGINT; DECLARE id_cursor BIGINT; DECLARE fini TINYINT DEFAULT 0; DECLARE cur1 CURSOR FOR SELECT DISTINCT(heures.id_participant) FROM heures INNER JOIN dossier ON dossier.id_participant = heures.id_participant WHERE heures_date BETWEEN '2009-05-01' AND '2009-05-31' AND dos_groupe IN ('Menuiserie'); DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET fini = 1; OPEN cur1; BOUCLE: REPEAT FETCH cur1 INTO id_cursor; IF (id_cursor IS NULL)THEN LEAVE BOUCLE ; ELSE SET resultat = CONCAT(CONCAT(resultat,'-'),id_cursor); END IF ; UNTIL fini END REPEAT BOUCLE; CLOSE cur1; RETURN resultat; END$$ DELIMITER ;
comment puis-je boucler sur un select sans les curseur, merci de votre aide.
Partager