Bonjour, après des mois de recherche, je n'ai toujours pas réussi à faire fonctionner cette petite requête toute simple.
Les champs:
poste, annee, nom
Les données:
pdg, 2004, tim
finances, 2005, vic
marketing, 2005, bob
pdg, 2005, luc
finances, 2006, joe
Comment faire pour récupérer la liste des employés actuels?
Merci
# des mois ?!
Posté par B. franck . Évalué à 1.
select ...where, j'ai du mal à comprendre comment tu as pu perdre autant de temps la dessus.
# Pas d'autres contraintes ?
Posté par cumulus . Évalué à 1.
select nom
from
<ta_table>
where
annee=2006
mais je pense que tu n'as pas exprimé ton problème de manière complète ..
[^] # Re: Pas d'autres contraintes ?
Posté par Zandu . Évalué à 1.
# subquery
Posté par duaner . Évalué à 2.
Si c'est le cas et que ton mysql est pas trop vieux (>= 4.1 il me semble), ceci ira :
select t1.*
from t t1, (select poste, max(annee) a from t group by poste) t2
where t1.poste = t2.poste
and t1.annee = t2.a;
Ya surement d'autres moyens :)
[^] # Re: subquery
Posté par bichenoubi . Évalué à 1.
Je ne peux malheuresuement tester pour l'instant (fin de semaine ;)), mais je vais y jeer un coup d'oeil dès mardi matin (longue fin de semaine ;)).
Ah, j'avais pensé faire justement ça en deux requêtes, mais j'espérais que cela fonctionne en juste une.
[^] # Ne fonctionne pas dans mysql 4.1.18
Posté par bichenoubi . Évalué à 1.
Cela ne génère pas d'erreur, seulement aucun résultat.
Il semblerait que ce soit l'ajout du max et group by qui fasse ne pas fonctionner le tout. Si j'essaie cette requête bidon, ça fonctionne.
SELECT `representants` . *
FROM `representants` AS t1 , (
SELECT `annee` , `poste`
FROM `representants`
WHERE `annee` =2006
) AS t2
WHERE (
`t1`.`poste` = `t2`.`poste`
AND `t1`.`annee` = `t2`.`annee`
);
Est-ce que quelqu'un connait une manière d'y arriver tout de même?
Merci
# Précisions
Posté par bichenoubi . Évalué à 1.
Oui l'année est l'année d'embaûche.
Je ne veux que l'employé le plus récent à chacun des poste, et vu que les années diffèrent et ne sont pas non plus nécessairement l'année actuelle, il faut y aller par une requête du type que Duaner a présenté.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.