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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 5
    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 251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 251
    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

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 5
    Par défaut
    merci beaucoup ca marche

  4. #4
    Expert confirmé
    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 : 46
    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
    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 251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 251
    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

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 37
    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 620
    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 620
    Billets dans le blog
    10
    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

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