• # effaré

    Posté par . En réponse au message Modifier le schema dynamiquement. Évalué à 2.

    Je suis pas un spécialiste, mais je lis les réponses et je suis effaré.... il est possible de faire avec le numéro de mois (relatifs), comme il est possible de faire avec une colonne année. Je vais prendre l'exemple du spécialiste qui nous explique qu'avec modulo c'est trop vachement compliqué, voir impossible.

    create table bar (`month` int, `number` int); 
    insert into bar values (1,50);
    insert into bar values (2,30);
    insert into bar values (13,30);
    insert into bar values (14,10);
    insert into bar values (15,14);
    insert into bar values (25,11);
    mysql> select * from bar; 
    +-------+--------+ 
    | month | number | 
    +-------+--------+ 
    | 1 | 50 | 
    | 2 | 30 | 
    | 13 | 30 | 
    | 14 | 10 | 
    | 15 | 14 | 
    | 25 | 11 | 
    +-------+--------+ 
    6 rows in set (0.00 sec)
    # admettons que janvier soir le 1 (et donc le 13 et 25) et que l'on veuille tous les janvier 
    #(soit 50+30+11) 91 :
    mysql> select sum(number) from bar where (mod(month,12)=1 and month > 12) or month=1 ;
    +-------------+
    | sum(number) |
    +-------------+
    | 91 |
    +-------------+
    1 row in set (0.00 sec)

    Une seule requête.

    bonus, ca marche avec février 30+10=40

    mysql> select sum(number) from bar where (mod(month,12)=2 and month > 12) or month=2 ;
    +-------------+
    | sum(number) |
    +-------------+
    | 40 |
    +-------------+
    1 row in set (0.00 sec)

    Maintenant il faut voir la suite de l’application pour décider c'est bien ou pas, mais cela permet de faire des moyennes glissants facilement sur x mois consécutifs par exemple : where month in (25,26,27,28)...