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. 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. 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. 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