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

Développement SQL Server Discussion :

Sélection top 5 groupe par chaque famille


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 193
    Points : 89
    Points
    89
    Par défaut Sélection top 5 groupe par chaque famille
    Bonjour à Toute la communauté
    Je sollicite votre aide sur la résolution d'un problème avec une requête sql server.
    Je voudrais selectionner 5 meilleurs produits vendus et les grouper par famille de produits
    mais quand j'exécute la requete que j'ai faite, ça ne me donne que 5 produits.

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 372
    Points : 489
    Points
    489
    Par défaut
    Bonjour,

    Quel code as tu saisi ? Fais voir ta requête de sélection.

    Merci.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 193
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par Alexandre le Grand Voir le message
    Bonjour,

    Quel code as tu saisi ? Fais voir ta requête de sélection.

    Merci.
    Merci, voici le code que j'ai saisi

    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
    18
    19
    20
    21
     
     SELECT TOP 5
     
       sum([MTTOTALTTC]) as TotalTTC
     
     
      , [ART].[REFPRODUIT]
     
     
      , [FP].[LBLFAMILLE] as Famille
     
     
      FROM [VENTE].[PRODUIT_LIV_CLIENT] PLC
      INNER JOIN [MODELE].[ARTICLE] ART
      ON [PLC].[ID_PRODUIT] = [ART].[ID_AUTO]
      INNER JOIN [VENTE].[LIVRAISON_CLIENT] LC
      ON [PLC].[ID_LIVR_CLIENT] = [LC].[ID_AUTO]
     
     
      INNER JOIN [MODELE].[FAMILLEPRODUIT] FP
      ON [ART].[ID_CATEG] = [FP].[ID_AUTO]
    et voici le résultat :

    Total TTC REFPRODUIT Famille
    532.749.250 M1 Transfert Electronique
    394.012.500 E1 TRANSFERT DE CREDIT
    328.850.000 MM Transfert Electronique
    73.506.000 M2 Transfert Electronique
    10.215.000 TG1 GLO Transfert

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 372
    Points : 489
    Points
    489
    Par défaut
    Dans la logique, je entends par meilleurs produits vendus, les produits dont le plus grand nombre d'unités sont vendus. Donc , il faudra sélectionner la quantité de produits vendus plutôt que le MTTOTALTTC, et faire un group by avec LBLFAMILLE.

    Merci.

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 193
    Points : 89
    Points
    89
    Par défaut
    Au fait, je veux un top 5 des meilleurs produits regroupé par chacune des familles.

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 193
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par Alexandre le Grand Voir le message
    Dans la logique, je entends par meilleurs produits vendus, les produits dont le plus grand nombre d'unités sont vendus. Donc , il faudra sélectionner la quantité de produits vendus plutôt que le MTTOTALTTC, et faire un group by avec LBLFAMILLE.

    Merci.

    Merci pour votre intervention.
    Au fait, je voudrais un top n par exemple top 5 des produits les plus vendus soit en chiffre d'affaire ou en qté vendu groupé par famille. c'est à dire la requete prend toutes le familles de produits et me trie le top 5 de leurs produits comme sur la photo ci jointe. Merci de m'aiderNom : photo.jpg
Affichages : 505
Taille : 50,3 Ko

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 896
    Points : 53 130
    Points
    53 130
    Billets dans le blog
    6
    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
    18
    19
    WITH T AS 
    (
    SELECT sum(MTTOTALTTC) as TotalTTC,
           COUNT(*) AS Qté,
           ART.REFPRODUIT,
           FP.LBLFAMILLE as Famille,
    	   ROW_NUMBER() OVER(PARTITION BY FP.LBLFAMILLE ORDER BY sum(MTTOTALTTC) DESC) AS RN          
    FROM   VENTE.PRODUIT_LIV_CLIENT PLC    
           INNER JOIN MODELE.ARTICLE ART    
                 ON PLC.ID_PRODUIT = ART.ID_AUTO    
           INNER JOIN VENTE.LIVRAISON_CLIENT LC    
                 ON PLC.ID_LIVR_CLIENT = LC.ID_AUTO          
           INNER JOIN MODELE.FAMILLEPRODUIT FP    
                 ON ART.ID_CATEG = FP.ID_AUTO
    GROUP  BY    ART.REFPRODUIT, FP.LBLFAMILLE
    )
    SELECT Famille, RN, REFPRODUIT,  Qté, TotalTTC
    FROM   T
    WHERE  RN <= 5;
    A +

  8. #8
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 193
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    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
    18
    19
    WITH T AS 
    (
    SELECT sum(MTTOTALTTC) as TotalTTC,
           COUNT(*) AS Qté,
           ART.REFPRODUIT,
           FP.LBLFAMILLE as Famille,
    	   ROW_NUMBER() OVER(PARTITION BY FP.LBLFAMILLE ORDER BY sum(MTTOTALTTC) DESC) AS RN          
    FROM   VENTE.PRODUIT_LIV_CLIENT PLC    
           INNER JOIN MODELE.ARTICLE ART    
                 ON PLC.ID_PRODUIT = ART.ID_AUTO    
           INNER JOIN VENTE.LIVRAISON_CLIENT LC    
                 ON PLC.ID_LIVR_CLIENT = LC.ID_AUTO          
           INNER JOIN MODELE.FAMILLEPRODUIT FP    
                 ON ART.ID_CATEG = FP.ID_AUTO
    GROUP  BY    ART.REFPRODUIT, FP.LBLFAMILLE
    )
    SELECT Famille, RN, REFPRODUIT,  Qté, TotalTTC
    FROM   T
    WHERE  RN <= 5;
    A +
    c'est pas possible. c'est une solution magique.
    Je vous remercie enormement

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

Discussions similaires

  1. [2012] Sélection de ventes groupée par semaine
    Par eddyphan dans le forum Développement
    Réponses: 17
    Dernier message: 06/11/2014, 09h18
  2. Sélection de 3 lignes dans chaque groupe, vue ?
    Par jv-boy dans le forum Requêtes
    Réponses: 4
    Dernier message: 12/07/2012, 20h58
  3. [2008R2] Groupe par rapport à une liste de sélection
    Par colonel.klink dans le forum SSRS
    Réponses: 2
    Dernier message: 28/12/2011, 15h26
  4. Sélection du premier enregistrement de chaque groupe
    Par mout1234 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 15/05/2007, 16h27

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