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 :

[SQL] Somme de 2 colonnes dans une même table


Sujet :

Langage SQL

  1. #1
    Membre averti
    Avatar de Cyrilange
    Profil pro
    Inscrit en
    Février 2004
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 268
    Points : 337
    Points
    337
    Par défaut [SQL] Somme de 2 colonnes dans une même table
    Voici l'exposé du problème :

    J'ai une table "Factures" contenant des factures d'achats et de ventes. Un champ boolean "vente" indique si c'est une facture de vente ou d'achat. Un champ "ht" représente la valeur hors taxe de la facture.

    Je désire faire une requête permettant de sortir 2 colonnes donnant respectivement le total hors taxes des ventes et des achats.

    J'ai essayé les requêtes suivantes mais sans succés :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT sum(Factures.ht) AS total_ventes,sum(Factures_A.ht) AS total_achats 
    FROM Factures,Factures AS Factures_A
    WHERE Factures.vente=True AND Factures_A.vente=False
    GROUP BY Factures.vente,Factures_A.vente,total_ventes,total_achats

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT sum(Factures.ht) AS total_ventes,sum(Factures_A.ht) AS total_achats 
    FROM Factures,Factures AS Factures_A
    GROUP BY Factures.vente,Factures_A.vente,total_ventes,total_achats 
    HAVING Factures.vente=True AND Factures_A.vente=False
    Quelqu'un pourrait-il m'aider à y voir plus claire ?

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Salut,

    essaies ça :

    SELECT vente, sum(ht)
    FROM Factures
    group by vente

  3. #3
    Membre averti
    Avatar de Cyrilange
    Profil pro
    Inscrit en
    Février 2004
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 268
    Points : 337
    Points
    337
    Par défaut
    Citation Envoyé par KeyTronic
    Salut,

    essaies ça :

    SELECT vente, sum(ht)
    FROM Factures
    group by vente
    Oui mais là j'obtien 2 lignes (total des ventes et total des achats) avec 2 colonnes (boolean vente et total) . Hors je veux une ligne avec 2 colonnes (total des ventes et total des achats).

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Essaies ça alors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT sum(fv.ht) as Total_Vente, sum(fa.ht) as Total_Achat
    FROM Factures fv
    inner join Factures f on (fv.vente = f.vente and f.vente = true)
    inner join Facture fa on (fa.vente = f.vente and f.vente = false)

  5. #5
    Membre averti
    Avatar de Cyrilange
    Profil pro
    Inscrit en
    Février 2004
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 268
    Points : 337
    Points
    337
    Par défaut
    Citation Envoyé par KeyTronic
    Essaies ça alors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT sum(fv.ht) as Total_Vente, sum(fa.ht) as Total_Achat
    FROM Factures fv
    inner join Factures f on (fv.vente = f.vente and f.vente = true)
    inner join Facture fa on (fa.vente = f.vente and f.vente = false)
    Je n'arrive pas à faire fonctionner ta requête sous Access 2003. Il doit y avoir un petit détail qui manque ou une erreur de syntax. J'ai essayé de la modifier mais rien n'y fait.

  6. #6
    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
    Je ne connais pas assez access pour te donner une réponse directement utilisable, mais le Standard SQL prévoit le CASE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT SUM(CASE WHEN Vente = true  THEN ht  ELSE 0 END) as Total_Ventes, 
           SUM(CASE WHEN Vente = false THEN ht  ELSE 0 END) as Total_Achat
    FROM  Factures
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  7. #7
    Membre averti
    Avatar de Cyrilange
    Profil pro
    Inscrit en
    Février 2004
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 268
    Points : 337
    Points
    337
    Par défaut
    Merci pour votre aide.

    J'ai trouvé !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT sum(factures.ht) as total_vente,(SELECT sum(factures.ht) FROM Factures WHERE vente=false) AS total_achat
    FROM Factures
    WHERE vente=true
    C'était tellement évident que j'ai cherché compliqué là où c'était simple.

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

Discussions similaires

  1. Copier un enregistrement dans une même table
    Par slammer dans le forum Langage SQL
    Réponses: 11
    Dernier message: 04/05/2010, 23h17
  2. Count dans plusieurs colonne d'une même table
    Par macfleid dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/07/2008, 20h43
  3. Double comptage dans une même table
    Par Patoune dans le forum Langage SQL
    Réponses: 5
    Dernier message: 22/03/2007, 17h49
  4. Nls_lang : deux codage dans une même table
    Par Oraman dans le forum Oracle
    Réponses: 6
    Dernier message: 22/08/2006, 12h36
  5. [Requête] plusieurs champs dans une même table ayants la même source
    Par Christophe93250 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 25/04/2006, 16h18

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