Bonjour,
Je cherche à faire une requête SQL assez complexe, et je galère légèrement (bon je suis pas vraiment un expert en la matière faut dire).
Le problème est le suivant:
Comment faire un MAX() tout en récupérant d'autres informations de la table sur laquelle on le fait?
Bon je vais prendre un exemple simple vu qu'il faudrait 3 jours pour expliquer notre schéma métier : j'ai 3 tables, Entreprise(id,nom), Secteur(id, nom), Employé(id,prénom,nom,salaire, entreprise_id, secteur_id)
Je voudrais afficher le salaire maximum par secteur, pour chaque entreprise.
Rien de très compliqué:
Maintenant on va dire que je veux afficher le nom de l'employé ayant le salaire maximum en plus, et là je vois plus comment faire ! Si je fais la même requête en rajoutant em.nom dans le SELECT, il m'oblige à mettre le em.nom dans le group by et du coup la requête n'a plus aucun sens.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT e.nom as e_nom, s.nom as s_nom, MAX(em.salaire) from Entreprise e, Employe em, Secteur s where em.entreprise_id=e.id and em.secteur_id=s.id group by e_nom,s_nom
Bon ça doit pas être compliqué à faire je pense, mais bon je ne connais pas la méthode, et bon vu que c'est assez spécifique comme problème j'ai pas réussi à trouver une solution sur le net.
Bref si quelqu'un veut bien m'éclairer, je suis preneur =)
Merci et @+
Partager