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 :

Select top 10 articles plus vendus


Sujet :

Développement SQL Server

  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Select top 10 articles plus vendus
    Bonjour tous le monde , je suis en 2éme Année Génie informatique , j'ai un petit
    problèmes (peut être banal) .je travail sur une BDD Sql-sevrer dont une table
    "Detailscommandes" :
    (PK) Id Commande
    (PK) Code Article
    IdClient
    QuantieCommande
    je veut afficher les Top 10 des articles les plus vendus avec le total quantité
    pour chaque article. Merci 1000 fois pour votre aide

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 073
    Points
    28 073
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT TOP 10 [Code Article], SUM(QuantiteCommande) Qte 
    FROM DetailsCommandes 
    GROUP BY [Code Article] 
    ORDER BY Qte DESC
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  3. #3
    Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    merci beaucoup ca marche

  4. #4
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonjour,

    Pour compléter la réponse de sevyc64, si vous avez 2 articles qui ont été vendus à quantité égale vous risquez d'avoir un souci avec la seule fonction TOP. Je vous conseille d'utiliser cette même fonction TOP avec l'option WITH TIES qui vous permettra d'éviter ce problème.

    ++

  5. #5
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 073
    Points
    28 073
    Par défaut
    OK, après consultation de l'aide (je ne connaissais pas WITH TIES) voici l'explication :

    Quoiqu'il arrive, ma requête renverra au maximum 10 enregistrements.

    Si pour le 10ème enregistrement, il existe 2 autres produits avec exactement la même quantité, ils ne seront pas renvoyés (lequel des 3 sera renvoyés, cela sera déterminer par le tri que fera automatiquement SQLServer)

    De rajouter WITH TIES, renverra dans ce cas là, non pas 10 mais 12 enregistrements. Les 3 produits avec la même quantité seront renvoyés, évitant ainsi la discrimination, mais éclatant de fait la limite de 10 fixée dans la requete.

    WITH TIES ne fonctionne que lorsque une clause ORDER BY est précisée et n'intervient que pour le dernier enregistrement normalement initialement renvoyé.

    Merci mikedaven pour cette info
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  6. #6
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 37
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par mikedavem Voir le message
    Bonjour,

    Pour compléter la réponse de sevyc64, si vous avez 2 articles qui ont été vendus à quantité égale vous risquez d'avoir un souci avec la seule fonction TOP. Je vous conseille d'utiliser cette même fonction TOP avec l'option WITH TIES qui vous permettra d'éviter ce problème.

    ++
    Bonjour,

    dans la recherche d'une solution à mon problème je suis tombée sur cette discussion qui est à mon sens riche en informations.

    Et craignant d’enfreindre encore une règle, je tente quand même de poser la question de savoir s'il existe un équivalent de l'option WITH TIES en Access,

    Si oui comment pourrait-on l'utiliser ?

    Ou bien Access tolérerait l’existence de deux articles qui ont été vendus ayant une quantité égale ?

    Merci d'avance.

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

    Cette question concerne le SGBD ACCESS et devrait donc être posée dans la section ACCESS.
    Si ACCESS autorise les fonctions OLAP (je ne crois pas que ce soit le cas), vous pouvez utiliser la fonction DENSE_RANK dans le même esprit, mais avec un résultat différent :
    si vous avez dans les 10 premiers en terme de classement 3 articles classés 2e ex-aequo et 3 articles classés 5e ex-aequo, la requête sélectionnera 14 articles

  8. #8
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 37
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    Bonjour,

    Cette question concerne le SGBD ACCESS et devrait donc être posée dans la section ACCESS.
    Si ACCESS autorise les fonctions OLAP (je ne crois pas que ce soit le cas), vous pouvez utiliser la fonction DENSE_RANK dans le même esprit, mais avec un résultat différent :
    si vous avez dans les 10 premiers en terme de classement 3 articles classés 2e ex-aequo et 3 articles classés 5e ex-aequo, la requête sélectionnera 14 articles
    Bonjour escartefigue,

    Bien merci pour l'explication, avec quelques recherches je découvert que les fonctions OLAP sont plutôt utilisées sous Excel et permettent l'analyse et l'extraction des informations assez rapidement.

    Découverte d'une nouvelle piste, cela m'a permis d'apprendre quelque chose de nouveau. Piste que je pourrai exploiter en profondeur à l'avenir.

    Merci bien !

Discussions similaires

  1. Réponses: 9
    Dernier message: 05/05/2015, 16h26
  2. 2 articles les plus vendus par distributeur
    Par marsu15 dans le forum Requêtes
    Réponses: 13
    Dernier message: 31/12/2010, 11h14
  3. Curseur plus performant que SELECT TOP 1 DELETE
    Par zinzineti dans le forum Administration
    Réponses: 4
    Dernier message: 12/07/2010, 12h15
  4. Les articles les plus vendus
    Par sam01 dans le forum Langage SQL
    Réponses: 21
    Dernier message: 19/01/2007, 14h17
  5. Problème avec select top
    Par franculo_caoulene dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 10/12/2004, 14h55

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