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 :

Jointure sur une même table


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 59
    Points : 58
    Points
    58
    Par défaut Jointure sur une même table
    Bonjour!

    J'ai une table releves qui comporte les champs date et montant.
    date est au format 'date' AAAA-MM-JJ et montant est un réel.

    J'aimerais afficher, par mois, la somme des montants positifs et la somme des montants négatifs.

    Mois | Entrées | Sorties
    Janvier | 50 |34
    Fevrier | 23 | 54
    Mars | 0 | 12

    En gros, la requête serait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT MONTHNAME(e.date) as "mois", 
      ABS(SUM(e.montant)) as "entrees", 
      ABS(SUM(s.montant)) as "sorties" 
    from releves e, releves s 
    WHERE e.montant > 0 
      and s.montant < 0 
    GROUP BY MONTHNAME(e.date)
    Ca ne fonctionne pas...

    Peut-être faudrait-il faire une jointure, mais je ne maitrise pas les JOIN...

    Voici ce que j'ai essayé (entre autres...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT MONTHNAME(e.date) as "mois", 
      SUM(e.montant) as "entrees", 
      SUM(s.montant) as "sorties" 
    FROM releves e 
    RIGHT JOIN releves s 
      ON s.montant < 0 
      AND e.montant > 0
    Auriez-vous une idée?

    Merci

  2. #2
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Peut-être une piste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT LaDate, 
    Sum(IIf([Montant] >= 0,[Montant])) AS [Positif], 
    Sum(IIf([Montant] < 0,[Montant])) AS [Négatif] 
    From MaTable 
    GROUP BY LaDate

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 59
    Points : 58
    Points
    58
    Par défaut
    Merci, j'ai trouvé!

    Voici la requête fonctionnelle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT MONTHNAME(r.date) AS 'mois', 
    SUM(IF(r.montant >= 0, r.montant, 0)) AS 'entrees', 
    SUM(IF(r.montant < 0, r.montant, 0)) AS 'sorties' 
    FROM releves r 
    GROUP BY MONTHNAME(r.date)

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

Discussions similaires

  1. Jointure sur une même table
    Par JmL40 dans le forum Développement
    Réponses: 6
    Dernier message: 14/12/2010, 15h26
  2. Auto-jointure sur une même table
    Par West01 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 23/10/2008, 15h46
  3. [1.x] Jointure sur une même table
    Par tyx dans le forum Symfony
    Réponses: 1
    Dernier message: 04/08/2008, 11h19
  4. Auto jointure (sur une même table)
    Par freestyler dans le forum Langage SQL
    Réponses: 16
    Dernier message: 20/05/2008, 15h16
  5. jointure sur une même table
    Par guillaumeVb6 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 06/09/2004, 15h08

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