IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

cumuler des valeurs en colonne


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 209
    Points : 115
    Points
    115
    Par défaut cumuler des valeurs en colonne
    bonjour a tous
    "titre pas très clair" ! j 'en conviens
    je reprend le développement et j'ai perdu certain reflex !
    j'ai une table [travail2] des champs [date],[valeur], [versement], [cumul]
    donc au moment où j enregistre la date la valeur et un éventuel versement je voudrais calculer le cumul à la volé !
    exemple :
    valeur 1 = 80 | versement 1 = 0 | donc cumul (automatique)=80
    valeur 2 = 40 | versement 2 = 50 | donc cumul (automatique)=70 ( 80+40-50)

    relativement simpliste, mais je bataille de puis un moment pour trouver la formule, mais entre les requêtes (sum et compagnie) les array..... je me suis perdu !
    du genre : $sql = "SELECT SUM(valeur) from `travail2` ; mais j'ai la même valeur de cumul a chaque ligne , c'est a dire le total de la colonne!
    il faudrait que je puisse imposer => de la ligne-x à la ligne-z.....
    merci de votre aide et de votre patiente !
    ps (nupes): requêtes pour PHP svp !

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 098
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    Tu peux utiliser les fonctions fenêtrées pour effectuer un cumul courant :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT ALL
        id, date, valeur, versement,
        SUM(valeur + versement) OVER (ORDER BY date ASC, id ASC) AS cumul
    FROM ta_table;

    Exemple :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    WITH data (id, date, valeur, versement) AS (
        VALUES
            ROW (1, '2022-06-02', 80, 0),
            ROW (2, '2022-06-04', 40, 50),
            ROW (3, '2022-06-04', 60, 25)
    )
    SELECT ALL
        date, valeur, versement,
        SUM(valeur - versement) OVER (ORDER BY date ASC, id ASC) AS cumul
    FROM data;

    Donne :

    date valeur versement cumul
    2022-06-02 80 0 80
    2022-06-04 40 50 70
    2022-06-04 60 25 105
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 209
    Points : 115
    Points
    115
    Par défaut
    merci seb
    a la première lecture j'y capte que dalle !
    je vais m y coller !
    merci bon week

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 098
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    La doc sur les fonctions fenêtrées => https://dev.mysql.com/doc/refman/8.0...functions.html
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/02/2022, 09h36
  2. [AC-2007] Cumuler des valeurs
    Par jmlabatut dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 01/12/2009, 09h23
  3. Cumuler des valeur indexées
    Par Tlemcen dans le forum Access
    Réponses: 25
    Dernier message: 20/02/2007, 23h29
  4. Récupérer l'ensemble des valeurs de colonnes
    Par maniolo dans le forum JDBC
    Réponses: 23
    Dernier message: 04/09/2006, 16h45
  5. Cumuler des valeurs
    Par calafato dans le forum Access
    Réponses: 16
    Dernier message: 21/12/2004, 18h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo