Requête SQL SERVER

Résolu
Bonjour,

Je travaille sur un TD de sql (cas d'un camping) qui se trouve à cette adresse: http://perso.modulonet.fr/~placurie/...%20complet.pdf

Je veux afficher le nom et prénom du client qui a le plus de réservations
J'ai réussi à afficher seulement le nombre de réservations max sans le nom et le prénom avec cette requête:
SELECT max(nb) AS mx
FROM (SELECT R.CLI_ID, count(*) AS nb
FROM CLIENT C, RESERVATION R
WHERE C.CLI_ID=R.CLI_ID
GROUP BY R.CLI_ID) AS T;


comment je peux afficher aussi le nom et le prénom svp?

4 réponses

  1. Bonjour,

    Je suis un peu rouillé en SQL mais je vais tenter de t'aider : il suffirait de :
    - rajouter dans ta sous-requete le nom et le prénom du client (après le select et après le group by)
    - rajouter ces mêmes champs dans ta requete principale en ajoutant un GROUP BY nom, prénom à la fin de la requete principale, ca donnerait :

    SELECT max(nb) AS mx, nom, prenom
    FROM (SELECT R.CLI_ID, count(*) AS nb, nom, prenom
    FROM CLIENT C, RESERVATION R
    WHERE C.CLI_ID=R.CLI_ID
    GROUP BY R.CLI_ID, nom, prenom) AS T
    GROUP BY nom, prenom;
    


    0
    1. Merci pour ta réponse Stringman621

      J'ai essayé cette requête:

      SELECT max(nb) AS mx, cli_nom, cli_pnom
      FROM (SELECT R.CLI_ID, count(*) AS nb, cli_nom, cli_pnom
      FROM CLIENT C, RESERVATION R
      WHERE C.CLI_ID=R.CLI_ID
      GROUP BY R.CLI_ID, cli_nom, cli_pnom) AS T
      GROUP BY cli_nom, cli_pnom;


      mais cela m'a donné comme le résultat du count: on m'a affiché le nombre de réservations de chaque client
      0
      1. Je vois pas l'interet de la sous-requete, on aurait pu travailler avec :
        select top 1 count(R.Cli_Id) as Mx, cli_nom, cli_pnom
        from client, reservation
        group by ....
        order by Mx

        bat,
        Laurent
        1
        1. Merci beaucoup Laurent pour ta réponse

          J'ai fait la requête suivante et ça a marché très bien:

          select top 1 count(R.Cli_Id) as Mx, cli_nom, cli_pnom
          from client C, reservation R
          WHERE C.CLI_ID=R.CLI_ID
          group by R.Cli_Id, cli_nom, cli_pnom
          order by Mx desc;
          0