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 :

Opération somme sur table maître/détail sous SQL


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2009
    Messages : 42
    Points : 19
    Points
    19
    Par défaut Opération somme sur table maître/détail sous SQL
    Bonjour
    j'ai un problème avec une requête SQL pour la somme de quantité dans une Table détail et l'affiche dans la table maître
    mon exemple :
    1- TABLE MAITRE :
    DATE QUANTITE TOTAL
    1 01/01/2016 250
    2 02/01/2016

    2- TABLE DETAIL
    DATE INDEXE ENTRE INDEXE SORTIE QTE
    1 01/01/2016 100 200 100
    2 01/01/2016 200 250 50
    3 01/01/2016 250 350 100

    Je veux faire la somme de quantité table détail et la mettre dans quantité table maître sachant que la table détail peut contenir plusieurs champs

    Ma requête est /
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Sum(DETAILL.QTE) AS SommeDeQTE
    FROM MAITRE INNER JOIN DETAIL ON MAITRE.N = DETAILL.N
    Le code marche mais il me met la somme de qte de toute la table detail et moi je veux la somme de qte détail de chaque table maître

    C'est a dire :
    Le premier champs est correct, la somme des qte detail est correcte comme dans mon exemple = 250
    Mais quand j'insert un deuxième champ maître avec la table détail la somme est = 250 + la qte détail. Il fait la somme de tout les champs de la table detail

    Pouvez vous m'aider à résoudre cette requête ?

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 088
    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 088
    Points : 38 393
    Points
    38 393
    Billets dans le blog
    9
    Par défaut
    Comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select t1.num
          ,t1.dte
          ,sum(t2.qte)
    from       TMAIT T1
    inner join TDETL T2
       on T2.num = T1.num
      and T2.dte = T1.dte
    group by  t1.num
             ,t1.dte
    J'ai repris votre jointure t1 et t2 mais en l'occurrence, on peut se passer de T1

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2009
    Messages : 42
    Points : 19
    Points
    19
    Par défaut
    merci pour t'a réponse mais tu a mis le critère de date : maitre .date = detail.date
    mais dans mon MCD on peut avoir des champs de date detail différent au champ maitre.date

    pourriez vous m'aider dans cette requête SVP

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 088
    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 088
    Points : 38 393
    Points
    38 393
    Billets dans le blog
    9
    Par défaut
    S'il ne faut pas utiliser la date, il suffit d'enlever le critère dans la requete
    La table "maitre" n'est pas utile pour ce besoin, vous pouvez coder :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select num
          ,sum(qte)
    From DETAIL 
    group by num

Discussions similaires

  1. erreur de syntaxe sur la requete iif sous sql access
    Par nadia123456 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 29/08/2008, 16h32
  2. création d'une table de fait sous sql server 2005
    Par kev0631 dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 19/07/2007, 15h45
  3. Backup sur SQL7 puis Restore sous SQL 2000
    Par souliced dans le forum Administration
    Réponses: 4
    Dernier message: 17/02/2006, 12h44
  4. Generateur IB et table Maître Détail
    Par 2icd dans le forum InterBase
    Réponses: 19
    Dernier message: 06/01/2006, 22h34
  5. [paradox] Post tables maître détail
    Par delphicrous dans le forum Bases de données
    Réponses: 1
    Dernier message: 23/09/2004, 11h28

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