Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1090 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] Question sur une requête

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQL] Question sur une requête

n°2284836
z4kn4f3in
Posté le 07-07-2016 à 12:56:21  profilanswer
 

Hello les gens !
 
Je fais pas mal de requête SQL en ce moment, et je me suis retrouvé confronter à un problème récurant. En gros ça concerne les requêtes où on voudrait mettre une condition sur une fonction d'agrégation.
J'ai trouvé un exemple similaire pour m'expliquer:
 
On veut faire une requête qui renvoie pour chaque université, le nom de l'université et le nom du dernier étudiant inscrit.
 
On a : Table University
bigint id
string name
 
Table Student
bigint id
bigint UniversityId
date registrationDate
string name
 
Bon perso je résoudrais le problème comme ça :
 
SELECT univ.name, stud.name FROM University univ
 INNER JOIN Student stud ON stud.universityId = univ.id
 INNER JOIN (SELECT univ.id AS univId, MAX(stud.registrationDate) AS maxDate FROM University univ
   INNER JOIN Student stud ON stud.universityId = university.id
          GROUP BY univ.id) subRequest ON subRequest.univId = univ.id AND subRequest.maxDate = stud.registrationDate
 
Mais je me demande si il n'y a pas de façon.. plus élégante de faire la requête, vu que avec cette solution on doit faire 2 requêtes à chaque fois, et que c'est pas très fun à décoder.
A noter que la solution doit être compatible avec toutes les SGBD communes (donc pas d'utilisation de fonction spécifique à certaines)
Merci d'avance et @+

mood
Publicité
Posté le 07-07-2016 à 12:56:21  profilanswer
 

n°2284842
kao98
...
Posté le 07-07-2016 à 15:05:40  profilanswer
 

Utiliser FIRST() / LAST() !?
 

Code :
  1. SELECT univ.name, FIRST(stud.name)
  2. FROM university univ
  3. INNER JOIN (
  4. SELECT name FROM student ORDER BY registrationDate DESC) stud ON univ.id = stud.universityId
  5. GROUP BY univ.id


 
NB : je n'ai pas de serveur sous le coude, pas moyen de tester, donc je ne sais pas du tout ce que je raconte :o


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] Question sur une requête

 

Sujets relatifs
[SQL] Aide exos (simple)Problème requête SQL: command not properly ended
Requête SQL - Question plutôt simple :p[SQL / ACCESS] question un peu tordu sur une requete.
Débutant, question sur syntaxe requete SQL[MySQL] Question sur les dates et sur 1 requete SQL
[SQL] Question pour une requete sous Oracle...requete SQL... petite question toute simple... Help please
SQL-php: question sur requeteUne petite question sur une requete SQL
Plus de sujets relatifs à : [SQL] Question sur une requête



Copyright © 1997-2016 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR