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électionner l'article le plus cher pour chaque facture [2008]


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 33
    Points : 43
    Points
    43
    Par défaut Sélectionner l'article le plus cher pour chaque facture
    bonjours

    j'aimerai avoir une requête que me permet de sélectionner l'article le plus chère pour chaque facture

    LigneFacture

    N°Facture Articles Prix
    1 PC 6000
    1 imprimante 1500
    1 USB 16G 80
    2 Tablette 2000
    2 USB 16g 80
    3 imprimante 1500
    3 PC 600

    resultats

    N°Facture Articles Prix
    1 PC 6000
    2 Tablette 2000
    3 PC 600


    merci pour votre aide

  2. #2
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

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

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 760
    Points : 10 541
    Points
    10 541
    Billets dans le blog
    21
    Par défaut
    Bonjour,

    Quelque chose comme cela peut être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      SELECT * FROM
    	LigneFacture AS L
    	INNER JOIN (SELECT Numero, MAX(Prix) AS 'Prix' FROM LigneFacture GROUP BY Numero) AS M ON L.Numero = M.Numero AND L.prix = M.Prix
    A noter que dans votre exemple, l'article de la facture 3 est erroné. Ou bien il s'agit d'une erreur de saisie et il manque un 0 au prix du PC, ou bien c'est l'imprimante qui devrait apparaître.

    A noter également que dans le cas où plusieurs articles auraient le même prix et qu'ils soient les plus chers, alors ils seront tous retournés. C'est ou bien cela, ou bien votre requête sera non déterministe.
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  3. #3
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    bonjour,

    Vous pouvez aussi utiliser les fonctions fenetrées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    WITH CTE AS (
        SELECT 
            NumFacture
        ,   Articles
        ,   Prix
        ,   ROW_NUMBER() OVER(PARTITION BY NumFacture ORDER BY Prix Desc) AS Rn
    )
    SELECT 
            NumFacture
        ,   Articles
        ,   Prix
    FROM CTE
    WHERE Rn = 1

  4. #4
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 33
    Points : 43
    Points
    43
    Par défaut
    merci de votre aide
    merci Mr aieeeuuuuu ca marche tres bien
    vous etes magnifiques

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

Discussions similaires

  1. [AC-2013] Obtenir la version la plus récente pour chaque semaine
    Par kimai dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 15/10/2015, 14h02
  2. Modifier ParametreField pour chaque facture
    Par abd75web dans le forum VB.NET
    Réponses: 2
    Dernier message: 13/11/2013, 12h56
  3. Réponses: 3
    Dernier message: 20/08/2009, 13h52
  4. Sélectionner les 15 plus grandes valeurs pour chaque mois
    Par Monkey_D.Luffy dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 24/06/2009, 10h50
  5. Connaitre le meilleur fournisseur pour chaque article
    Par jncoffy dans le forum Requêtes et SQL.
    Réponses: 14
    Dernier message: 09/02/2007, 12h21

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