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 :

Problème de regroupement


Sujet :

Langage SQL

  1. #1
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 701
    Points : 955
    Points
    955
    Par défaut Problème de regroupement
    BONJOUR A TOUS ET BONNE ANNEE 2009
    Voici mon pb:
    j'ai 3 tables : POINTVENTE, INFOPRODUIT, PRODUIT
    Il s'agit en fait d'une base ou l'on recense des points de ventes (POINTVENTE),
    ensuite on rentre des informations sur les produits présents dans ces points de ventes (INFOPRODUITS),
    la table PRODUIT contient une liste de produits préenregistrés.
    Voici les champs de ces tables:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    POINTVENTE----------
    numpv (clé primaire)
    nompv
    nom vendeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    INFOPRODUITS----------------------------------
    numinfo (clé primaire)
    numdemonpoint (clé étrangère vers POINTVENTE)
    numdemonproduit (clé étrangère vers PRODUIT)
    qteachat
    prixachat
    qtevendu
    prixvente
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    PRODUIT--------------------------------
    numproduit (clé primaire)
    nomproduit
    catégorie (savon, dentifrice etc ...)
    VOICI LA LISTE DES REQUETES QUE JE DOIT RESOUDRE

    1/ liste des produits vendus par les points de ventes // (une seule occurence de produit par ligne)
    2/ liste des produits par points de ventes avec le chiffre d'affaire
    3/ liste des produits par catégorie avec le chiffre d'affaire
    4/ classement des produits par rapport au chiffre d'affaire (du plus grand au plus petit)

    j'ai essayer une approche pour la 1/ mais je me retrouve souvent avec le même produit sur
    2 lignes car étant répertorié par 2 points de ventes differentes:


    Code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    SELECT DISTINCT 
    PRODUIT.numproduit,
    PRODUIT.nomproduit,
    INFOPRODUITS.qteachat,
    INFOPROPV.prixachat,
    INFOPROPV.qtevendu,
    INFOPROPV.prixvente,
    PRODUIT.catégorie
    FROM
    PRODUIT
    INNER JOIN INFOPRODUITS ON (PRODUIT.numproduit = INFOPROPV.numdemonproduit)
    INNER JOIN POINTVENTE ON (INFOPRODUITS.numdemonpoint = POINTVENTE.numpv )
    Merci d'avance pour votre aide
    PS : déja sur le forum firebird

  2. #2
    Membre averti Avatar de deY!
    Inscrit en
    Avril 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2006
    Messages : 403
    Points : 414
    Points
    414
    Par défaut
    Si tu veux grouper par point de vente alors que les produits peuvent être vendus dans plusieurs point de vente, l'unicité est impossible pour les produits.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 701
    Points : 955
    Points
    955
    Par défaut
    ok bien vu, que me propose tu alors pour la suite
    Merci

  4. #4
    Membre averti Avatar de deY!
    Inscrit en
    Avril 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2006
    Messages : 403
    Points : 414
    Points
    414
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    SELECT pdv.nompv, p.nomproduit, SUM(ip.qtevendu*ip.prixvente) AS CA
    FROM POINTVENTE pdv
    LEFT JOIN INFOPRODUITS ip ON ip.numdemonpoint = pdv.numdemonpoint
    LEFT JOIN PRODUIT p ON p.numproduit = ip.numproduit
    GROUP BY pdv.nompv, p.nomproduit
     
    SELECT p.nomproduit, p.catégorie, SUM(ip.qtevendu*ip.prixvente) AS CA
    FROM PRODUIT p
    LEFT JOIN INFOPRODUITS ip ON ip.numproduit = p.numproduit
    GROUP BY p.nomproduit, p.catégorie
     
    SELECT p.nomproduit, SUM(ip.qtevendu*ip.prixvente) AS CA
    FROM PRODUIT p
    LEFT JOIN INFOPRODUITS ip ON ip.numproduit = p.numproduit
    GROUP BY p.nomproduit
    ORDER BY CA DESC
    Vérifie mais je pense que c'est bon

  5. #5
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 701
    Points : 955
    Points
    955
    Par défaut
    SELECT pdv.nompv, p.nomproduit, SUM(ip.qtevendu*ip.prixvente) AS CA
    FROM POINTVENTE pdv
    LEFT JOIN INFOPRODUITS ip ON ip.numdemonpoint = pdv.numdemonpoint
    LEFT JOIN PRODUIT p ON p.numproduit = ip.numproduit
    GROUP BY pdv.nompv, p.nomproduit

    SELECT p.nomproduit, p.catégorie, SUM(ip.qtevendu*ip.prixvente) AS CA
    FROM PRODUIT p
    LEFT JOIN INFOPRODUITS ip ON ip.numproduit = p.numproduit
    GROUP BY p.nomproduit, p.catégorie

    SELECT p.nomproduit, SUM(ip.qtevendu*ip.prixvente) AS CA
    FROM PRODUIT p
    LEFT JOIN INFOPRODUITS ip ON ip.numproduit = p.numproduit
    GROUP BY p.nomproduit
    ORDER BY CA DESC
    je suppose que ces reponses sont classés par ordre par rapport à l'ordre de mes questions, vu que je suis dans un cyber je ne peut essayer directement sur ma base

  6. #6
    Membre averti Avatar de deY!
    Inscrit en
    Avril 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2006
    Messages : 403
    Points : 414
    Points
    414
    Par défaut
    Oui c'est ça... Désolé pour le temps de réponse.

    Est-ce que cela fonctionne ?

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

Discussions similaires

  1. Union de 2 tables problème de regroupement
    Par juha dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 23/10/2007, 11h17
  2. Problème de regroupement
    Par pmld10 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/10/2007, 21h52
  3. Problème de regroupement
    Par toma_lille dans le forum Langage SQL
    Réponses: 9
    Dernier message: 25/06/2007, 16h03
  4. problème de regroupement
    Par toma_lille dans le forum Requêtes et SQL.
    Réponses: 17
    Dernier message: 24/06/2007, 21h56
  5. [XSLT]Problèmes pour regrouper selon l'attribut
    Par gharl dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 21/08/2006, 21h39

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