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 36 37
|
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) CHARSET latin1
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 ('Horeca-cuisine')
ORDER BY heures.id_participant;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET fini = 1;
OPEN cur1;
BOUCLE: REPEAT
FETCH cur1 INTO id_cursor;
IF NOT fini THEN
IF (id_cursor IS NULL)THEN
LEAVE BOUCLE ;
ELSE
SET resultat = CONCAT(CONCAT(resultat,'-'),id_cursor);
END IF ;
END IF;
UNTIL fini END REPEAT BOUCLE;
CLOSE cur1;
RETURN resultat;
END$$
DELIMITER ; |