Comme @JagaSrik l'a dit, il est nécessaire de disposer de plus d'informations sur vos données et vos tables pour donner la bonne réponse. Cependant, si vous devez modifier une table comme celle-ci :
name | date | id
-----------------------------------------
total Inscription | 2017-07-10 | 2
total Inscription | 2020-04-20 | 2
total Inscription | 2020-04-21 | 3
total Inscription | 2020-06-17 | 4
total Inscription | 2020-06-18 | 2
à quelque chose comme ça :
date | total
-----------------------------------------
2017-07-10 | 2
2020-04-20 | 4
2020-04-21 | 7
2020-06-17 | 11
2020-06-18 | 13
vous pouvez utiliser CURSOR .
Pour cet exemple :
DELIMITER $$
CREATE PROCEDURE `countIds`()
BEGIN
DECLARE finished INTEGER DEFAULT 0;
DECLARE total INTEGER DEFAULT 0;
DECLARE theCount INTEGER DEFAULT 0;
DECLARE theDate varchar(100) DEFAULT "";
DEClARE curCount
CURSOR FOR
SELECT `id`,`date` FROM table1;
DECLARE CONTINUE HANDLER
FOR NOT FOUND SET finished = 1;
OPEN curCount;
getCount: LOOP
FETCH curCount INTO theCcount,theDate;
IF finished = 1 THEN
LEAVE getCount;
END IF;
SET total = total + theCount;
select theDate, total;
END LOOP getCount;
CLOSE curCount;
END$$
DELIMITER ;
Néanmoins CURSEUR est une façon de faire votre travail et il peut y avoir des méthodes plus efficaces.