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 :

Requête COUNT & MAX


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 5
    Par défaut Requête COUNT & MAX
    Bonjour,

    J'ai deux Table dont l'une contient, en clé étrangère, la clé primaire de l'autre
    Je voudrait obtenir la ligne de la première table pour laquelle sa clé primaire apparait le plus souvent dans les lignes dans la seconde table

    C'est un peu tordu à expliquer comme ça, le schéma est plus parlant:



    Mon But est d'obtenir les NomAbonne et PrenomAbonne pour lequel le IdAbonne est présent dans le plus de lignes de la table PRETS
    Ma requête ressemble à ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT NomAbonne, PrenomAbonne
    FROM ABONNES
    WHERE (IdAbonne =
              (SELECT PRETS.IdAbonne, MAX(COUNT(*)) AS Expr1
              FROM PRETS INNER JOIN ABONNES AS ABONNES_1 ON PRETS.IdAbonne = ABONNES_1.IdAbonne))
    Cette requête ne fonctionne pas

    Je suis désespéré de rester bloqué sur une requête qui avait l'air aussi simple au départ

    Pouvez vous m'aider?

  2. #2
    Membre Expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    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
     
    SELECT NomAbonne, 
              PrenomAbonne
    FROM ABONNES
    WHERE IdAbonne =
              (SELECT TOP 1 gb.IdAbonne 
               FROM
                  (SELECT P.IdAbonne, COUNT(*) AS Nbr
    	       FROM PRETS P
    	       GROUP BY P.IdAbonne
           	       ORDER BY COUNT(*) DESC
                   ) as gb
               )
    Note que cela n'est pas génial, on voit bien que l'utilisation du TOP 1 est nécessaire si tu ne veux retourner qu'un seul abonne.

    Or si trois abonnes ont le même nombre de prêts? tu laisses arbitrairement à SQL SERVER le "soin" de choisir parmi les 3!

Discussions similaires

  1. Requête group by + max(count())
    Par Wonesek dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/06/2008, 14h50
  2. COUNT() et MAX()
    Par julien.63 dans le forum Requêtes
    Réponses: 7
    Dernier message: 29/03/2006, 14h51
  3. Coupler les fonction COUNT et MAX
    Par Pascal Lob dans le forum Langage SQL
    Réponses: 5
    Dernier message: 27/03/2006, 09h45
  4. [Débutant] Requête SELECT avec max et sous-requête
    Par joefou dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/07/2005, 14h28
  5. PB avec une requête Count
    Par Marion dans le forum ASP
    Réponses: 7
    Dernier message: 05/07/2004, 12h56

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