[SQL] Besoin d'aide
franchesco
-
2Spartiate -
2Spartiate -
Salut à tous, mon problème est le suivant :
avec le schéma relationnel ci dessous on me demande de répondre en SQL aux questions 1), 2) et 3).
Employés=(matricule, nom, prénom, salaire, compagnie)
Secteur=(compagnie, ville)
1) la compagnie qui à le plus grand nombre d’employés
2) la compagnie qui paie mieux en moyenne
3) Les personnes qui gagnent plus que la moyenne des salaires de la compagnie pour laquelle elles travaillent
Je travail en mode SQL avec Access 2000.
Pour la première question j’ai écris :
Select compagnie, max( count( nom ) )
From employés
Group by compagnie ;
A l’exécution j’ai le message d’erreur suivant : Impossible d’avoir une fonction d’agrégat dans l’expression max(count(nom)).
J’ai voulu faire de même avec la deuxième question
Select compagnie, max( avg(salaire))
From emplotés
Group by compagnie ;
Mais j’ai le meme message d’erreur, Impossible d’avoir une fonction d’agrégat dans l’expression max(avg(salaire)).
N’est il pas possible de composer deux fonctions d’agrégat en SQL, ou alors se sont les limites du mode SQL sous access 2000?
Pourriez-vous me proposer une solution à ces questions?
Merci.
avec le schéma relationnel ci dessous on me demande de répondre en SQL aux questions 1), 2) et 3).
Employés=(matricule, nom, prénom, salaire, compagnie)
Secteur=(compagnie, ville)
1) la compagnie qui à le plus grand nombre d’employés
2) la compagnie qui paie mieux en moyenne
3) Les personnes qui gagnent plus que la moyenne des salaires de la compagnie pour laquelle elles travaillent
Je travail en mode SQL avec Access 2000.
Pour la première question j’ai écris :
Select compagnie, max( count( nom ) )
From employés
Group by compagnie ;
A l’exécution j’ai le message d’erreur suivant : Impossible d’avoir une fonction d’agrégat dans l’expression max(count(nom)).
J’ai voulu faire de même avec la deuxième question
Select compagnie, max( avg(salaire))
From emplotés
Group by compagnie ;
Mais j’ai le meme message d’erreur, Impossible d’avoir une fonction d’agrégat dans l’expression max(avg(salaire)).
N’est il pas possible de composer deux fonctions d’agrégat en SQL, ou alors se sont les limites du mode SQL sous access 2000?
Pourriez-vous me proposer une solution à ces questions?
Merci.
A voir également:
- [SQL] Besoin d'aide
- Logiciel sql - Télécharger - Bases de données
- Requete sql pix ✓ - Forum MySQL
- Sql lister les tables ✓ - Forum Programmation
- Récupération serveur sql - Télécharger - Gestion de données
- Migration base access vers sql server - Télécharger - Gestion de données
1 réponse
Bonjour!
Non, tu ne peux pas composer deux fonctions d'agrégat, du moins, je ne l'ai jamais vu...
Pour la première je proposerais:
Et tu recupères le premier de la liste...
Pareil pour le deuxième, tu fais un order by:
Et juste, un petit conseil, la prochaine fois, mets un titre un plus explicite!!
Bonne journée
Maily :-)))) L'hirondelle ne fait pas le printemps
mais le dromadaire fait le désert.
Non, tu ne peux pas composer deux fonctions d'agrégat, du moins, je ne l'ai jamais vu...
Pour la première je proposerais:
select compagnie, count(*) as nb From employés Group by compagnie order by nb desc;
Et tu recupères le premier de la liste...
Pareil pour le deuxième, tu fais un order by:
Select compagnie, avg(salaire) as nb From emplotés Group by compagnie order by nb desc;
Et juste, un petit conseil, la prochaine fois, mets un titre un plus explicite!!
Bonne journée
Maily :-)))) L'hirondelle ne fait pas le printemps
mais le dromadaire fait le désert.
From informatique
=> maily !
<=2Spartiate=> Les hirondelles font sont bonheur... ;-)