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 :

Sum différents sur sur une même table ...


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 21
    Points : 15
    Points
    15
    Par défaut Sum différents sur sur une même table ...
    Bonjour,
    désolé je suis un peu rouillé en SQL et je me posais une question au niveau d'une requête.

    Donc en fait j'aurais besion de faire des sum toutes betes sur une table qui compte environ 20 000 enregistrements du style : somme des montants <0 , sommes des montants > 0 , valeur aboslue ...
    Donc j'ai fais une petite rêquete du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    Select A.toto,
    sum(abs(b3.amount)) as col_3_0_, 
    sum(b1.amount) as col_4_0_, 
    sum(b2.amount) as col_5_0_, 
    sum(b2.amount)- sum(b1.amount) as col_6_0_
    from A
    inner join B b1 on A.id = b1.id
    inner join B b2 on A.id = b2.id
    inner join B b3 on A.id = b3.id
    where
    b1.amount > 0
    b12.amount < 0
    Bon ca fonctionne mais j'ai l'impression que c'est pas super et en plus c ultra lent !!

    Merci d'avance .

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT a.Toto, SUM(abs(amount)) as col_3_0_,
                  (SUM(abs(amount)) + SUM(amount)) / 2 as col_4_0_,
                 -(SUM(abs(amount)) - SUM(amount)) / 2 as col_5_0_,
                  SUM(amount) as col_6_0_,
    FROM A inner join B b ON A.id = b.id
    Ta dernière colonne constitué des négatifs - les positifs, j'ai fait le contraire, si j'ai eu tort, il suffit de mettre un - devant.

    Attention : SUM(abs(amount)) + SUM(amount) doit être égal à SUM(abs(amount) + amount), et est sans doute un peu lpus performant

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    Ouf , j'ai pas trop compris la lol !
    Avec la requete modifié que tu as mis , tu peux faire la sommes des montant négatifs ?
    J'avoue etre un peu perdu

  4. #4
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    (abs(-5) - (-5)) / 2 = 5
    (abs(3)  - (3))  / 2 = 0
    ---------------------------
    Total des négatifs   = 5
    Dans la requête, j'ai mis un - devant pour avoir le résultat en négatif, comme toi, mais ce n'est pas obligatoire

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    Ca y est ok merci jai compris lol,
    Bon je suis en effet completement rouillé , javais pris les /2 pour un commentaire .... no comment

Discussions similaires

  1. Champs identiques avec valeur différente where dans une même table
    Par Cyrus59 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 17/11/2014, 17h56
  2. Réponses: 4
    Dernier message: 09/08/2013, 20h19
  3. Plusieurs SUM sur une même table
    Par fbms18 dans le forum SQL
    Réponses: 6
    Dernier message: 29/04/2011, 10h45
  4. 2 informations différentes sur une même table
    Par thyphoon dans le forum Débuter
    Réponses: 2
    Dernier message: 04/04/2008, 10h02
  5. jointure sur une même table
    Par guillaumeVb6 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 06/09/2004, 16h08

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