Je sèche sur une requête

Résolu/Fermé
stefgironde Messages postés 22 Date d'inscription dimanche 28 février 2010 Statut Membre Dernière intervention 27 septembre 2022 - Modifié le 29 nov. 2020 à 17:47
stefgironde Messages postés 22 Date d'inscription dimanche 28 février 2010 Statut Membre Dernière intervention 27 septembre 2022 - 1 déc. 2020 à 18:34
Bonjour,

Je fais actuellement une formation sur les requêtes sql.
Je sèche sur une requête:

Je pense qu'il faut passer par une requête imbriquée mais je n'ai pas encore fait ce chapitre.

La question:

Quelle bibliothèque compte le plus de salariés gagnant plus de 2 500 € ?

J'ai deux tables dans ma bdd:
Bibliothèque:

Salaries:


A mon avis cela ne doit pas être si compliqué que ça mais je suis bloqué.

Merci par avance.

Configuration: Windows / Chrome 87.0.4280.66

7 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
29 nov. 2020 à 17:50
Bonjour,

C'est marrant .. mais tes imprimes écran me donnent l'impression que tu as utilisé phpmyadmin pour les afficher...
et par conséquent.. que la BDD utilisée est Mysql et non SqlServer (forum que tu as choisi)

Pour en revenir à ta question, nulle question de requêtes imbriquées ici...
Seulement une simple jointure et l'utilisation des fonction COUNT, GROUP BY, ORDER BY et un WHERE pour la condition sur le salaire
0
stefgironde Messages postés 22 Date d'inscription dimanche 28 février 2010 Statut Membre Dernière intervention 27 septembre 2022 1
29 nov. 2020 à 17:59
C'est exact, j'utilise Mysql.
Je peux transférer vers la bonne liste ou je suis obligé de le refaire dans le bon forum ?
Merci.
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
29 nov. 2020 à 18:15
Je vais la déplacer.
Mais bon je t'ai déjà donné la réponse...
0
stefgironde Messages postés 22 Date d'inscription dimanche 28 février 2010 Statut Membre Dernière intervention 27 septembre 2022 1
29 nov. 2020 à 20:50
Suis pas plus avancé...
Effectivement ça doit être faisable mais je ne trouve pas
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
29 nov. 2020 à 21:01
Tu veux quoi au juste ?
Tu espères qu'on te donne la requête sur un plateau ???

Je t'ai donné la réponse...

une simple jointure et l'utilisation des fonction COUNT, GROUP BY, ORDER BY et un WHERE pour la condition sur le salaire

À toi de le mettre en pratique...

tu trouveras de très nombreux exemples sur internet pour chacune de ces fonctions.
0
stefgironde Messages postés 22 Date d'inscription dimanche 28 février 2010 Statut Membre Dernière intervention 27 septembre 2022 1
1 déc. 2020 à 16:05
Toujours pas trouvé ...
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
1 déc. 2020 à 16:15
Qu'as tu essayé ?

Si tu ne nous montre pas ce que tu essaies nous ne pourrons pas t'aider à corriger.

Ici on ne fournit pas la réponse toute faite mais on veut bien t'aider à la trouver..
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
stefgironde Messages postés 22 Date d'inscription dimanche 28 février 2010 Statut Membre Dernière intervention 27 septembre 2022 1
1 déc. 2020 à 16:19
Je n'ai pas eu de problème sur la question précédente:

19- Combien de salariés gagnent moins de 1 700 € et dans combien de bibliothèques ?

SELECT COUNT(`code_salarie`) AS NombreDeSalariés, COUNT(bible_nom) AS NombreDeBibliothèque
FROM bibliotheque, salaries
WHERE (bibliotheque.bible_id=salaries.`bible_id`) AND (Salaire<1700);

Par contre sur celle là je commence comme ça:

SELECT bible_nom FROM bibliotheque, salaries WHERE bibliotheque.bible_id= salaries.bible_id AND salaries.Salaire>2500 GROUP BY bible_nom HAVING

Mais je sèche après le HAVING je ne sais pas comment formuler le fait qu'il y ait le plus de salariés.
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
1 déc. 2020 à 16:26
Pourquoi veux tu faire un HAVING ?

Dans les fonctions que je t'ai cité, je t"ai parlé du ORDER BY
Tu as également oublié de compter le nombre de salarié ... (comme dans ta première requête )
0
stefgironde Messages postés 22 Date d'inscription dimanche 28 février 2010 Statut Membre Dernière intervention 27 septembre 2022 1
1 déc. 2020 à 16:30
Dans ma réponse je ne veux voir que la bibliothèque qui a le plus de salariés ayant un salaire sup à 2500€. d'où le HAVING je pense qui doit être utile.
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
1 déc. 2020 à 18:05
Fais donc la requête avec le ORDER BY ....
Une fois que tu vois la liste classée telle que tu le désires... il te suffira d'ajouter un LIMIT 1
0
stefgironde Messages postés 22 Date d'inscription dimanche 28 février 2010 Statut Membre Dernière intervention 27 septembre 2022 1
Modifié le 1 déc. 2020 à 18:35
SELECT bible_nom
FROM bibliotheque, salaries
WHERE bibliotheque.bible_id= salaries.bible_id AND salaries.Salaire>2500 ORDER BY Salaire DESC LIMIT 1

Du coup je me rends compte que dans aucune bibliothèque il y a plus d'un salarié gagnant plus de 2500€.

Merci.
0