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

Requêtes et SQL. Discussion :

[A-00] faire un SUM par dessus un SUM


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 61
    Points : 42
    Points
    42
    Par défaut [A-00] faire un SUM par dessus un SUM
    Bonsoir,

    Grâce à votre aide et quelque goutte de sueur je suis passé à l'étape suivante avec access. et comme à son habitude il aime bien me jouer des tours.

    c'est pourquoi je sollicite encore une fois votre aide.
    Je pense que le site devrait pensé à me remettre la palme d'or de la fille qui posait le plus de question


    enfin, je vous ai joint une image de ma requête qui me pose soucis.

    comme vous pourrez le constater sur l'image, se trouve dans ma requête 3 produits chacun ayant le idproduit, ainsi que leur nom, "vendu"= quantité vendu et "totalvendu" = poid total vendu.

    Cependant j'ai 2 fois l'article entrecote car le 1er pèse 150gr et le 2ème pèse 200gr, c'est pourquoi ils sont séparés.

    ma question était: est-il possible de regrouper mes "entrecotes" pour obtenir ainsi le la quantité total vendu de toutes mes entrecotes.

    pour être plus claire j'aurais aimé faire une somme de "totalvendu" pour les articles qui ont le même "nom" en dépit du fait qu'il y a un idproduit différent


    j'espère avoir était assez clair car je suis pas sur de me comprendre moi-même .

    merci d'avance
    Fichiers attachés Fichiers attachés

  2. #2
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonsoir,

    Pour plus de précision et mieux t'aider, il vaut mieux que tu nous donnes une copie du code SQL correspondant à ta requête.

    Pour répondre à ta question, il faut comprendre comment fonctionne une requête regroupement: le moteur regroupe les lignes qui ont une même valeur pour chacun des champs (ou expression) sur lesquels tu indiques 'Regroupement'. Je trouve d'ailleurs cela plus clair en SQL

    Dans ton cas, il te faut donc simplement enlever ton IDproduit de ta requête.
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 61
    Points : 42
    Points
    42
    Par défaut
    bonjour,
    voila le code sql.
    mes champs sont déjà regrouper mais vu qu'ils n'ont pas le même idproduit je pense que ca ne s'aditionne pas comme ca



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT caisse.idproduit AS caisse_idproduit, caisse.nom, caisse.vendu, produit.catégorie, Sum([caisse].[vendu]*[produit].[poid]) AS Totalvendu
    FROM produit INNER JOIN caisse ON produit.idproduit = caisse.idproduit
    GROUP BY caisse.idproduit, caisse.nom, caisse.vendu, produit.catégorie;

  4. #4
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    As-tu teste comme te le préconisait ta requete en enlevant IdProduit
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 61
    Points : 42
    Points
    42
    Par défaut
    c'est à dire que j'ai enlevé le champ ou il y a idproduit
    ce qui me donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT caisse.nom, caisse.vendu, produit.catégorie, Sum([caisse].[vendu]*[produit].[poid]) AS Totalvendu
    FROM produit INNER JOIN caisse ON produit.idproduit = caisse.idproduit
    GROUP BY caisse.nom, caisse.vendu, produit.catégorie;
    Il faudrait que j'enlève aussi ce qui est en gras non?

    Mais il me semble que c'est ma jointure, car mes 2 tables sont liées par idproduit

  6. #6
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut
    Une petite idée :

    Tu fais un regroupement sur les x premiers caractères de gauche (exemple : steack = 6 caractères)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Left(caisse.nom,6) as ProduitVendu, produit.catégorie, Sum([caisse].[vendu]*[produit].[poid]) AS Totalvendu
    FROM produit INNER JOIN caisse ON produit.idproduit = caisse.idproduit
    GROUP BY Left(caisse.nom,6)
    La partie concernant les jointures doit bien sur rester dans la requête
    A voir !
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  7. #7
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Citation Envoyé par nadege46 Voir le message
    c'est à dire que j'ai enlevé le champ ou il y a idproduit
    ce qui me donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT caisse.nom, caisse.vendu, produit.catégorie, Sum([caisse].[vendu]*[produit].[poid]) AS Totalvendu
    FROM produit INNER JOIN caisse ON produit.idproduit = caisse.idproduit
    GROUP BY caisse.nom, caisse.vendu, produit.catégorie;
    Il faudrait que j'enlève aussi ce qui est en gras non?

    Mais il me semble que c'est ma jointure, car mes 2 tables sont liées par idproduit
    Le problème vient toujours de tes clés de regroupement. Ici tu as donc demandé un regroupement des lignes qui ont à la fois le méme nom, la même valeur de "vendu" et la même catégorie.

    Si vendu est une quantité - je présume - il faut l'enlever du group by. Pour cela en mode création, soit tu vires le champ dans ta requête, soit tu le laisses en mettant une opération appropriée autre que Regroupement. Par exemple Somme ou moyenne.... en relisant ton premier post, je suppose qu'il te faut une somme ici.
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 61
    Points : 42
    Points
    42
    Par défaut
    ah oui, c'était tout simple en fait

    comme tu la dit il fallait que je mette somme sous mon champ vendu

    en tout cas merci à tous pour votre aide.

    et certainement à très bientot

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

Discussions similaires

  1. faire un lien par dessus un flash swf
    Par diabli73 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 15/04/2009, 09h50
  2. Faire passer des composants par dessus un Panel
    Par Aloneghost dans le forum Composants VCL
    Réponses: 0
    Dernier message: 16/03/2009, 01h28
  3. Réponses: 5
    Dernier message: 22/09/2008, 12h14
  4. Comment faire passer un menu par dessus une autre frame
    Par barthelv dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/11/2005, 11h03
  5. Mettre du texte sur une vidéo(ou par dessus un tmediaplayer)
    Par souch dans le forum Composants VCL
    Réponses: 9
    Dernier message: 08/07/2004, 13h30

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