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 :

Addition incrémentale en SQL


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Par défaut Addition incrémentale en SQL
    Bonjour tous le monde,

    Voilà je bloque sur une requête.

    J'ai un champ QUANTITE d'une table xxx

    Quantité
    2
    6
    10
    85

    Je veux faire une somme incrémentale en sql

    SOMME
    2
    8
    18
    103

    J'ai essayé en utilisant Count et group by, mais je n'arrive pas à cumuler les nombres comme je le veux.

    Juste pour vous dire, que je n'utilise ni du PL-sql ni du T-sql, juste du pur sql!! Est-ce possible de le faire et si oui comment?

    Merci de votre aide!!

  2. #2
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Par défaut
    Essai ça


  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Par défaut
    Non, sum, me retourne la somme de la colonne en entier, alors que je veux une incrémentation avec la valeur préçédente.

    Merci de ton aide.

  4. #4
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Par défaut
    J'avais pa compris, désolé.

    Tu doit alors le faire dans ton code si tu utilises cette requete dans un code.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Par défaut
    Oui, c'est le souci, l'action doit pouvoir être faite uniquement en SQL, et c'est le gros problème.

    Kaboo

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    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 134
    Par défaut
    Je suppose que ta table comporte un colonne qui permet d'ordonner les lignes.
    Si ton SGBD, que tu n'as pas précisé (Règles du forum Langage SQL à lire par tous) prend en charge les fonctions analtiques de regroupement...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SUM(quantite) OVER (ORDER BY col_ordre ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
    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.

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    Pour cela il faut effectivement une clef ou une colonne d'ordonnancement sinon on ne saura pas comment effectuer le cumul...

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    CREATE TABLE TQ (NID INT, QTE INT)
     
    INSERT INTO TQ VALUES (1, 2)
    INSERT INTO TQ VALUES (2, 6)
    INSERT INTO TQ VALUES (3, 10)
    INSERT INTO TQ VALUES (4, 85)
     
    SELECT NID, (SELECT SUM(QTE) 
                 FROM   TQ AS T2 
                 WHERE  T2.NID <= T1.NID) AS CUMUL
    FROM   TQ AS T1
     
    NID         CUMUL       
    ----------- ----------- 
    1           2
    2           8
    3           18
    4           103
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Par défaut Solution trouvée
    Merci de votre aide,

    SQLPro ma bien inspiré, voilà la requête qui fait exactement ce que je veux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT b.champ1, b.champ2, sum(a.champ2) as cumul
    FROM tbl a, tbl b
    WHERE a.champ1 <= b.champ1
    GROUP BY b.champ1, b.champ2
    order by b.champ1
    Avec champs 1 en int et clé primaire
    Champs 2 en int.

    Voilà, pas besoin d'utiliser de T-SQL ou du PL-SQL.

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 14/01/2009, 16h01
  2. [SQL] Problème d'addition dans requete SQL
    Par cheers94wow dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 10/05/2006, 15h05
  3. [SQL] Addition sur condition
    Par Hannubis dans le forum Langage SQL
    Réponses: 6
    Dernier message: 14/03/2006, 16h05
  4. Requete SQL d'addition
    Par kernel57 dans le forum Requêtes
    Réponses: 2
    Dernier message: 04/02/2006, 17h58
  5. Addition en SQL..
    Par Thomus38 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 18/11/2005, 13h28

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