{MySQL} une requete MAX sur les champs ?

Fermé
volumeni - 25 janv. 2010 à 19:09
 volumeni - 28 janv. 2010 à 19:10
Bonjour,

voila j'ai une table 'users' qui ressemble à ça :

NOM | Compétence1 |Compétence2 |Compétence3 |Compétence4 |Compétence5 |
Alfred | 0 | 15 |42 |81 |74 |
Gertrude| 90 | 55 |50 |19 |35 |


J'aimerais connaitre quelle requete écrire pour connaitre, pour chaque ligne, les 2 compétences les plus élevées, mais pas les valeurs, je m'en fiche...

Alfred => Compétence4 & Compétence5
Gertrude => Compétence1 & Compétence2

merci !
A voir également:

2 réponses

chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
25 janv. 2010 à 22:13
Salut,
alors je pense que le plus gros problème vient de ta table...avis perso...si tu veux rajouter une compétence ou faire des requêtes comme celles-ci, faudrait peut-être revoir la conception de la table..
Sinon, une solution Oracle:
SELECT nom,comp FROM
(
SELECT nom, comp,cmp,ROW_NUMBER() OVER (PARTITION BY nom ORDER BY comp DESC) AS t FROM
(
SELECT nom,competence1 AS comp,'ma competence1' AS cmp FROM COMPETENCE
UNION ALL
SELECT nom,competence2,'ma competence2' FROM COMPETENCE
UNION ALL
SELECT nom,competence3,'ma competence3' FROM COMPETENCE
UNION ALL
SELECT nom,competence4,'ma competence4' FROM COMPETENCE
UNION ALL
SELECT nom,competence5,'ma competence5'  FROM COMPETENCE
)
)
WHERE t<3

COMPETENCE étant ta table et j'ai du mettre un nom bidon pour identifier la compétence....
Pour MySql, je pense que tu devrais t'en sortir avec des LIMIT....
Y'a peut-etre plus simple..si d'autre ont des idées!! Peut-être une procédure pourrait le faire aussi!!
@+
0
c'est bon j'ai trouvé
en passant par une table temporaire en fait.
0