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

Langage SQL Discussion :

Faire un sum pas à pas après chaque row


Sujet :

Langage SQL

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Faire un sum pas à pas après chaque row
    Bonjour,

    Je développe sous INGRES.

    Voilà mon soucis que je n'arrive pas à résoudre

    Nom DATE X Y
    ------ ------- ---- ----
    toto 01/12/2016 2 2
    titi 02/12/2016 3 5
    tutu 03/12/2016 1 6
    tata 04/12/2016 5 11
    ..

    Je cherche comment calculer Y dans un requête.
    Je veux mettre la somme du Y du 1/12 et celui du X du 02/12 dans le Y du 2/12.
    puis faire la somme du Y du 02/12 et celui du X du 03/12 dans le Y du 3/12 .
    etc ...

    Merci si vous avez une idée.

    Cordialement

    Sylvie

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 789
    Points
    30 789
    Par défaut
    C'est ce qu'on appelle une somme cumulée...

    Si ton SGBD accepte les fonctions de regroupement fenêtrées cela s'écrit simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select  src.nom
        ,   src.date
        ,   src.x
        ,   sum(src.x)  over (order by src.date rows between unbounded preceeding and current row)
    from    matable src
    ;
    Sinon, c'est à peine plus compliqué :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    select  src.nom
        ,   src.date
        ,   src.x
        ,   sum(cml.x)
    from    matable src
        inner join
            matable cml
            on  xml.date <= src.date
    group by src.nom
        ,   src.date
        ,   src.x
    ;
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 133
    Points : 38 555
    Points
    38 555
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par al1_24 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select  src.nom
        ,   src.date
        ,   src.x
        ,   sum(src.x)  over (order by src.date rows between unbounded preceeding and current row)
    from    matable src
    ;
    Juste un "e" à supprimer dans preceding

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Merci beaucoup.

    J'ai testé ce matin dans mon programme et ça fonctionne.

    J'ai utilisé la requête avec le INNER JOIN.

    Encore merci

    Sylvie

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 03/08/2007, 13h54
  2. Réponses: 1
    Dernier message: 05/09/2006, 11h45
  3. Réponses: 2
    Dernier message: 27/07/2006, 09h30
  4. Réponses: 8
    Dernier message: 07/06/2006, 22h29
  5. [Debug]Comment faire du pas à pas
    Par rhum_un dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 08/11/2005, 16h05

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