Je sèche sur une requête [Résolu]

Signaler
Messages postés
14
Date d'inscription
dimanche 28 février 2010
Statut
Membre
Dernière intervention
16 mai 2021
-
Messages postés
14
Date d'inscription
dimanche 28 février 2010
Statut
Membre
Dernière intervention
16 mai 2021
-
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

Messages postés
32980
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 juin 2021
3 560
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
Messages postés
14
Date d'inscription
dimanche 28 février 2010
Statut
Membre
Dernière intervention
16 mai 2021
2
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.
Messages postés
32980
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 juin 2021
3 560
Je vais la déplacer.
Mais bon je t'ai déjà donné la réponse...
Messages postés
14
Date d'inscription
dimanche 28 février 2010
Statut
Membre
Dernière intervention
16 mai 2021
2
Suis pas plus avancé...
Effectivement ça doit être faisable mais je ne trouve pas
Messages postés
32980
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 juin 2021
3 560
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.
Messages postés
14
Date d'inscription
dimanche 28 février 2010
Statut
Membre
Dernière intervention
16 mai 2021
2
Toujours pas trouvé ...
Messages postés
32980
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 juin 2021
3 560
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..
Messages postés
14
Date d'inscription
dimanche 28 février 2010
Statut
Membre
Dernière intervention
16 mai 2021
2
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.
Messages postés
32980
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 juin 2021
3 560
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 )
Messages postés
14
Date d'inscription
dimanche 28 février 2010
Statut
Membre
Dernière intervention
16 mai 2021
2
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.
Messages postés
32980
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 juin 2021
3 560
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
Messages postés
14
Date d'inscription
dimanche 28 février 2010
Statut
Membre
Dernière intervention
16 mai 2021
2
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.