Simplifier une requête

Résolu
Bonjour,
J'aimerais simplifier la requête suivante :


select prenomnomj, (max(months_between(to_date(anneefin,'YYYY'),to_date(anneedebut, 'YYYY')))/12) as annee from joueur 
	group by prenomnomj 
	having max(months_between(to_date(anneefin,'YYYY'),to_date(anneedebut, 'YYYY'))) 
	>= all (
		select max(months_between(to_date(anneefin,'YYYY'),to_date(anneedebut, 'YYYY'))) 
		from joueur );



La commande suivante fonctionne mais comme vous pouvez le voir elle est "lourde". Je répète 3 fois :

(max(months_between(to_date(anneefin,'YYYY'),to_date(anneedebut, 'YYYY')))/12)

La première fois je le met dans un alias ce qui permet de rendre "meilleurs" l'affichage mais es possible d'utilisé une méthode pour "enlever" les 2 autres commandes ?

Merci d'avance pour toutes réponse.
Cordialement.

1 réponse

  1. Contributeur Ambassadeur
    bonjour, utilises-tu réellement le logiciel MySQL?
    Quel est le type des champs anneefin et annedebut?
    Moi je ferais ainsi:
    select j.prenomnomj, jmax.maxannee as annee from joueur as j, 
    (select max(anneefin-anneedebut) as maxannee from joueur)  as jmax
    where jmax.maxannee =  j.anneefin-j.anneedebut;
    0
    1. Ah oui effectivement je me suis tromper de forum c'est sql plus
      0
    2. Contributeur Ambassadeur
      @Hamster18Quel est le type des champs anneefin et annedebut?
      As-tu essayé ma suggestion?
      0
    3. Bonjour votre commande ne fonctionnait pas mais je m'en suis inspiré ce qui m'a permit de trouver une solution merci beaucoup =)
      0