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 :

Somme de plusieurs fichiers dans une seule requete SQL


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Homme Profil pro
    Comptable
    Inscrit en
    Juillet 2013
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Comptable
    Secteur : Services de proximité

    Informations forums :
    Inscription : Juillet 2013
    Messages : 67
    Points : 54
    Points
    54
    Par défaut Somme de plusieurs fichiers dans une seule requete SQL
    Bonjour,

    Je travaille sur une base HFSQL.
    J'ai deux tables
    Suppléments et Boisson

    Suppléments : -------|----------- Boisson :
    ID------Prix -----------|----------  ID------Prix
    1--------5 -------------|----------  1--------6
    2--------2 -------------|----------  1--------3.5
    1--------3 -------------|----------  2--------2.5
    1--------8 -------------|---------- 
    J'arrive a faire la somme des prix par ID pour l'ID = 1 mais en 2 requêtes
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select
      sum(supplements.prix)
    from
      supplements
    where
      supplement.ID = '1'
    group by
      supplement.ID
    et de même pour la boisson

    Mais je souhaiterai savoir comment faire en une seule requête
    Est-ce possible ?

    Merci pour votre retour

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Je ne comprends pas bien ta requête: à quoi sert le GROUP-BY, vu que la colonne en question n'est pas dans la clause SELECT, et que de toute façon tu n'as qu'un seul ID pris en compte (via la clause WHERE) ?

    Est-ce que tu peux, à partir de ton jeu de données, nous montrer ce que tu veux obtenir ?

    Tatayo.

  3. #3
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    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 136
    Points : 38 561
    Points
    38 561
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Soit vous voulez le résultat pour un ID donné, en ce cas utilisez :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select sum(T1.prix)
         , sum(T2.prix)
    from supplements   as T1
    inner join boisson as T2 
       on T2.ID = T1.ID
    where T1.ID = '1'
    Soit vous voulez la liste des prix par ID, alors il faut utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select T1.ID
         , sum(T1.prix)
         , sum(T2.prix)
    from supplements   as T1
    inner join boisson as T2 
       on T2.ID = T1.ID
    Group by T1.ID
    PS : le titre de votre sujet n'est pas approprié, il ne s'agit pas d'additionner des fichiers mais des montants, issus de plusieurs tables

  4. #4
    Membre du Club
    Homme Profil pro
    Comptable
    Inscrit en
    Juillet 2013
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Comptable
    Secteur : Services de proximité

    Informations forums :
    Inscription : Juillet 2013
    Messages : 67
    Points : 54
    Points
    54
    Par défaut Message d'erreur
    bonjour,

    Merci pour votre aide. J'ai fait un test avec vos deux requêtes et j'ai un message d'erreur.
    Erreur renvoyée par le serveur :
    et j'ai bien mes sommes des mes montants mais elle ne correspondent pas à la vrai somme
    en effet il vient m'additionner les lignes, je m'explique en prenant mon exemple :

    il vient prendre la ligne de la table supplement ID 1 et prix 5 et il repete cette ligne
    autant de fois qu'il trouve d'enregistrement dans la table boisson avec l'ID 1

    donc j'ai 2 lignes
    ID 1 Prix 5 de la table supplement + ID 1 Prix 3.5 de la table boisson et
    ID 1 Prix 5 de la table supplement + ID 1 Prix 2.5 de la table boisson

    et en faisant la somme je me retrouve avec 10 en total de Supplement et 6 en total de boisson.

  5. #5
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 4 153
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Additionner les prix des deux tables ?

    Dans ce cas, ça devrait faire l'affaire :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    select sum(prix)
    from
    (
       select prix from boisson where id = 1
       union all
       select prix from supplement where id = 1
    )

    Mais comme dit plus haut, si vous voulez une réponse pertinente à votre question :
    - Donnez un jeu de données
    - Donnez le jeu de résultat attendu

    Car là, sans connaître en détail votre besoin on fait des plans sur la comète...
    On ne jouit bien que de ce qu’on partage.

  6. #6
    Membre du Club
    Homme Profil pro
    Comptable
    Inscrit en
    Juillet 2013
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Comptable
    Secteur : Services de proximité

    Informations forums :
    Inscription : Juillet 2013
    Messages : 67
    Points : 54
    Points
    54
    Par défaut
    Merci beaucoup StringBuilder
    C'est exactement ce que j'attendais comme résultat.
    C'est Parfait.

    Je clôture le sujet et promis
    la prochaine fois je mettrais un jeu de test et le résultat souhaité.

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

Discussions similaires

  1. [XL-2007] Copier plusieurs feuilles de plusieurs fichier dans une seule feuille
    Par QcSylvanio dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 03/10/2012, 22h02
  2. Insérer des données sur plusieurs lignes dans une seule en SQL
    Par nathantahiti dans le forum Développement
    Réponses: 1
    Dernier message: 03/08/2011, 10h47
  3. Plusieurs Count() dans une seule requete
    Par mazdahmen dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/10/2010, 19h34
  4. Faire plusieurs count dans une seule requete
    Par Gregory.M dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/07/2010, 12h35
  5. Réponses: 4
    Dernier message: 08/06/2006, 20h06

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