Menu

Calcul dans une requete SQL [Résolu]

-
Bonjour,
alors j'ai actuellement un problème avec une requête , pour commencer , j'ai une requête SALARIE qui est en gros un tableau qui regroupe toute les informations sur les salariés dont leurs salaire :

la requête qui m'est demander de faire est la suivante : afficher le nom et le prénom du qui perçoit le plus grand salaire

n'étant pas très expérimenté j'utilise le monde création pour crée ma requête : j'ai donc bien mis
champ : salaire table : salarier
dans calcul j'ai mis Max quand j’exécute tout va bien , cependant il m'est demander le nom de la personne qui perçoit ce salaire , donc j'ajoute dans les colonnes de droite donc champ :nom puis table: salarier , la j'ai mis regroupement ne sachant trop quoi mettre puisque les autres ne me donne pas le résultat attendu et champ prénom la table salarié et également regroupement dans la troisième colonne

le résultat afficher me donne , tout les salaires des salarié ainsi que leurs noms et prenoms ma question est la suivante comment n'afficher que celui qui a le plus grand salaire , je ne comprends pas pourquoi le résultat me donne cela etant donné que jai bien mis max salaire.

voici le mode sql de ma requete :

SELECT Max(SALARIE.SALAIRE) AS MaxDeSALAIRE, SALARIE.NOM, SALARIE.PRENOM
FROM SALARIE
GROUP BY SALARIE.NOM, SALARIE.PRENOM;

merci de votre retours

ps : j'ai également tenter de mettre dans la feuille des priorités ; champs pere : salaire rien ne bouge

Configuration: Windows / Chrome 73.0.3683.103
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
Messages postés
25287
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
21 mai 2019
5193
1
Merci
Bonjour,

SELECT SALARIE.NOM, SALARIE.PRENOM, SALARIE.SALAIRE
FROM SALARIE 
WHERE SALARIE.SALAIRE = (SELECT MAX(SALARIE.SALAIRE) FROM SALARIE )

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 39454 internautes nous ont dit merci ce mois-ci

excuse moi de te re solicité , j'ai également des requetes dont je n'arrive pas a obtenir le resultat attendu :

-afficher la liste des salariés ( Nom Prenom) qui ont le meme salaire que CLAVIER Solene qui est une salarié ; la seul solution que j'ai trouver c'est de regarde le salaire de solene clavier et de mettre celui ci en critère , auriez vous une autre solution ?
jee pee
Messages postés
25287
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
21 mai 2019
5193 > benSQL -
SELECT SALARIE.NOM, SALARIE.PRENOM, SALARIE.SALAIRE
FROM SALARIE 
WHERE SALARIE.SALAIRE = (SELECT SALARIE.SALAIRE FROM SALARIE WHERE SALARIE.NOM='CLAVIER' AND SALARIE.PRENOM='Solene' )
jee pee
Messages postés
25287
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
21 mai 2019
5193 > jee pee
Messages postés
25287
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
21 mai 2019
-
Mais ça c'est une syntaxe ancienne, plus facile avec le max, mais qui pour ce second exemple n'est plus d'actualité.

Il vaudrait mieux quelque chose comme :
SELECT A.NOM, A.PRENOM, A.SALAIRE
FROM SALARIE A
JOIN SALARIE B ON A.SALAIRE = B.SALAIRE 
WHERE B.NOM='CLAVIER' AND B.PRENOM='Solene'

mais je ne suis pas certain de la syntaxe, c'est une forme que je n'ai jamais utilisé ;-)
super la premiere methode fonctionne parfaitement , savez vous si il est possible ducoup d'enlever dans le resultat, la ligne clavier solene ?
jee pee
Messages postés
25287
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
21 mai 2019
5193 > benSQL -
SELECT SALARIE.NOM, SALARIE.PRENOM, SALARIE.SALAIRE
FROM SALARIE 
WHERE SALARIE.SALAIRE = (SELECT SALARIE.SALAIRE FROM SALARIE WHERE SALARIE.NOM='CLAVIER' AND SALARIE.PRENOM='Solene' )
AND NOT SALARIE.NOM='CLAVIER' AND NOT SALARIE.PRENOM='Solene
Commenter la réponse de jee pee