Fonction count (SQL) sous acces
Fermé
Nico90
-
15 févr. 2010 à 17:56
xsure Messages postés 51 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 26 septembre 2015 - 17 févr. 2010 à 14:08
xsure Messages postés 51 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 26 septembre 2015 - 17 févr. 2010 à 14:08
A voir également:
- Fonction count (SQL) sous acces
- Fonction si et - Guide
- Acces rapide - Guide
- Fonction moyenne excel - Guide
- Accès refusé - Guide
- Je n'ai plus acces a ma boite mail gmail - Guide
26 réponses
Bonjour, maintenant je n'ai plus la meme erreur, j'ai sytaxe erreur, et je me demande si ce n'est pas les # qui plantent ma requette SQL, merci d'avance pour une réponse rapide et clair.
Tu as même de grosse erreurs, déja dans ta clause FROM, tu n'as que la table SERVICE alors que tu utilise les tables EMPLOYE et FONCTION dans WHERE.
pour ta requette, je pense qu'il ne faut utiliser que les tables SERVICE et EMPLOYE
Essaye ca ca devrait marché :
SELECT SERVICE.Nomserv, COUNT(Numemp)AS "Nombre d'employés"
FROM SERVICE, EMPLOYE
WHERE SERVICE.Numserv=EMPLOYE.Numserv (faut pas mettre le #)
GROUP BY SERVICE.Nomserv ;
dit moi si ca marche
pour ta requette, je pense qu'il ne faut utiliser que les tables SERVICE et EMPLOYE
Essaye ca ca devrait marché :
SELECT SERVICE.Nomserv, COUNT(Numemp)AS "Nombre d'employés"
FROM SERVICE, EMPLOYE
WHERE SERVICE.Numserv=EMPLOYE.Numserv (faut pas mettre le #)
GROUP BY SERVICE.Nomserv ;
dit moi si ca marche
Bonjour, je te remercie cela fonctionne bien. Mais j'ai d'autre souci avec d'autres de mes requettes, est-ce que tu pourrai m'aider?
oui pas de problème
après je connait pas toutes les syntaxes, j'ai étudier le sql dans le cadre de ma license en gestion
après je connait pas toutes les syntaxes, j'ai étudier le sql dans le cadre de ma license en gestion
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Fonction pour laquelle il y a plus de 1 employé
SELECT FONCTION.Numfonction, FONCTION.Libfonction
FROM EMPLOYE, FONCTION
GROUP BY EMPLOYE.Numfonction
HAVING count(*)>1;
Erreur :l'expression spécifié 'Numfonction' comme partie d'agrégat.
Liste des fonctions qui ne sont pas utilisées.
SELECT FONCTION.Numfonction, FONCTION.Libfonction
FROM EMPLOYE, FONCTION
GROUP BY EMPLOYE.Numfonction
HAVING count(*)=0;
Somme des salaires du service compta
Erreur :l'expression spécifié 'Numfonction' comme partie d'agrégat.
SELECT SERVICE.Nomserv, avg(EMPLOYE.salemp)
FROM EMPLOYE, SERVICE
WHERE SERVICE.Nomserv='COMPTA';
Erreur :l'expression spécifié 'Nomserv' comme partie d'agrégat.
Liste des fonctions qui ne sont pas utilisées
SELECT FONCTION.Numfonction, FONCTION.Libfonction
FROM EMPLOYE, FONCTION
GROUP BY EMPLOYE.Numfonction
HAVING count(*)=0;
Erreur :l'expression spécifié 'Numfonction' comme partie d'agrégat.
Libellé des services dans lequel travaillent plus de 2 employés
SELECT SERVICE.Nomserv
FROM SERVICE
GROUP BY EMPLOYE.Numsev
HAVING count(*)>2;
Erreur :l'expression spécifié 'Nomserv' comme partie d'agrégat.
Noms des employés INFOGRAPHISTES dont le salaire est le plus élevé
SELECT max(EMPLOYE.Salemp), EMPLOYE.Nomemp
FROM EMPLOYE, FONCTION
WHERE FONCTION.Libfonction='INFOGRAPHISTE';
Erreur :l'expression spécifié 'Nomserv' comme partie d'agrégat.
Somme des salaires par service
SELECT SERVICE.Nomserv, avg(EMPLOYE.salemp)
FROM EMPLOYE, SERVICE
GROUP BY SERVICE.Numservice;
Erreur :l'expression spécifié 'Nomserv' comme partie d'agrégat.
J'aimerai que tu puisse m'aider sur chacune de ces requettes et par ailleurs que tu m'explique pourquoi dans chacune j'ai une erreur d'agrégat, merci beaucoup.
En attente d'une réponse rapide et clair.
SELECT FONCTION.Numfonction, FONCTION.Libfonction
FROM EMPLOYE, FONCTION
GROUP BY EMPLOYE.Numfonction
HAVING count(*)>1;
Erreur :l'expression spécifié 'Numfonction' comme partie d'agrégat.
Liste des fonctions qui ne sont pas utilisées.
SELECT FONCTION.Numfonction, FONCTION.Libfonction
FROM EMPLOYE, FONCTION
GROUP BY EMPLOYE.Numfonction
HAVING count(*)=0;
Somme des salaires du service compta
Erreur :l'expression spécifié 'Numfonction' comme partie d'agrégat.
SELECT SERVICE.Nomserv, avg(EMPLOYE.salemp)
FROM EMPLOYE, SERVICE
WHERE SERVICE.Nomserv='COMPTA';
Erreur :l'expression spécifié 'Nomserv' comme partie d'agrégat.
Liste des fonctions qui ne sont pas utilisées
SELECT FONCTION.Numfonction, FONCTION.Libfonction
FROM EMPLOYE, FONCTION
GROUP BY EMPLOYE.Numfonction
HAVING count(*)=0;
Erreur :l'expression spécifié 'Numfonction' comme partie d'agrégat.
Libellé des services dans lequel travaillent plus de 2 employés
SELECT SERVICE.Nomserv
FROM SERVICE
GROUP BY EMPLOYE.Numsev
HAVING count(*)>2;
Erreur :l'expression spécifié 'Nomserv' comme partie d'agrégat.
Noms des employés INFOGRAPHISTES dont le salaire est le plus élevé
SELECT max(EMPLOYE.Salemp), EMPLOYE.Nomemp
FROM EMPLOYE, FONCTION
WHERE FONCTION.Libfonction='INFOGRAPHISTE';
Erreur :l'expression spécifié 'Nomserv' comme partie d'agrégat.
Somme des salaires par service
SELECT SERVICE.Nomserv, avg(EMPLOYE.salemp)
FROM EMPLOYE, SERVICE
GROUP BY SERVICE.Numservice;
Erreur :l'expression spécifié 'Nomserv' comme partie d'agrégat.
J'aimerai que tu puisse m'aider sur chacune de ces requettes et par ailleurs que tu m'explique pourquoi dans chacune j'ai une erreur d'agrégat, merci beaucoup.
En attente d'une réponse rapide et clair.
xsure
Messages postés
51
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
26 septembre 2015
1
16 févr. 2010 à 13:05
16 févr. 2010 à 13:05
Fonction pour laquelle il y a plus d'1 employé :
SELECT FONCTION.Numfonction, FONCTION.Libfonction
FROM FONCTION, EMPLOYE
WHERE FONCTION.Numfonction=EMPLOYE.Numfonction
GROUP BY FONCTION.Numfonction, FONCTION.Libfonction
HAVING Count(Numemp)>1
;
erreur :
-tu as oublier la jointure WHERE
-GROUP BY doit reprendre les mêmes propriété que SELECT
-Count(*) compte toutes les lignes de la table, il vaut mieux mettre une propriété car cela va compter dans la table EMPLOYE grace à la propriété Numemp
SELECT FONCTION.Numfonction, FONCTION.Libfonction
FROM FONCTION, EMPLOYE
WHERE FONCTION.Numfonction=EMPLOYE.Numfonction
GROUP BY FONCTION.Numfonction, FONCTION.Libfonction
HAVING Count(Numemp)>1
;
erreur :
-tu as oublier la jointure WHERE
-GROUP BY doit reprendre les mêmes propriété que SELECT
-Count(*) compte toutes les lignes de la table, il vaut mieux mettre une propriété car cela va compter dans la table EMPLOYE grace à la propriété Numemp
xsure
Messages postés
51
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
26 septembre 2015
1
16 févr. 2010 à 13:10
16 févr. 2010 à 13:10
pourrez tu m'envoyer le fichier access pour que je fasse plus alaise (s'il ne contient pas de données confidentielle bien sur) par message privé?
Bonjour, oui je peux t'envoyer cela mais est ce que je dois créer un compte sur le site pour t'envoyer mon projet access ou sinon peux tu me dire ton adresse internet? Merci d'avance.
xsure
Messages postés
51
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
26 septembre 2015
1
16 févr. 2010 à 13:25
16 févr. 2010 à 13:25
xsure@live.fr
xsure
Messages postés
51
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
26 septembre 2015
1
16 févr. 2010 à 13:45
16 févr. 2010 à 13:45
le x en minuscule bien sur
xsure
Messages postés
51
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
26 septembre 2015
1
16 févr. 2010 à 13:55
16 févr. 2010 à 13:55
Somme des salaires du service compta
SELECT SERVICE.Nomserv, SUM(EMPLOYE.salemp) AS "Total Salaires"
FROM EMPLOYE, SERVICE
WHERE SERVICE.Numserv=EMPLOYE.Numserv
AND SERVICE.Nomserv="COMPTABILITE"
GROUP BY SERVICE.Nomserv;
la Somme c'est SUM et t'as oublié la jointure
normalement ca doit etre ca
SELECT SERVICE.Nomserv, SUM(EMPLOYE.salemp) AS "Total Salaires"
FROM EMPLOYE, SERVICE
WHERE SERVICE.Numserv=EMPLOYE.Numserv
AND SERVICE.Nomserv="COMPTABILITE"
GROUP BY SERVICE.Nomserv;
la Somme c'est SUM et t'as oublié la jointure
normalement ca doit etre ca
xsure
Messages postés
51
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
26 septembre 2015
1
16 févr. 2010 à 14:02
16 févr. 2010 à 14:02
Libellé des services dans lequel travaillent plus de 2 employés
SELECT SERVICE.Nomserv
FROM SERVICE, EMPLOYE
WHERE SERVICE.Numserv=EMPLOYE.Numserv
GROUP BY SERVICE.Nomserv
HAVING Count(Numemp)>2;
la ca te metrat le nom des services, si tu veut les numéros, remplace SERVICE.Nomserv par SERVICE.Numserv dans SELECT et GROUP BY
SELECT SERVICE.Nomserv
FROM SERVICE, EMPLOYE
WHERE SERVICE.Numserv=EMPLOYE.Numserv
GROUP BY SERVICE.Nomserv
HAVING Count(Numemp)>2;
la ca te metrat le nom des services, si tu veut les numéros, remplace SERVICE.Nomserv par SERVICE.Numserv dans SELECT et GROUP BY
xsure
Messages postés
51
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
26 septembre 2015
1
16 févr. 2010 à 14:08
16 févr. 2010 à 14:08
la requette Noms des employés INFOGRAPHISTES dont le salaire est le plus élevé est contradictoire :
ESt ce que tu veut l'infographite qui a le salaire le plus élevé ou les infongraphiste classé par ordre décroissant de salaire?
ESt ce que tu veut l'infographite qui a le salaire le plus élevé ou les infongraphiste classé par ordre décroissant de salaire?
xsure
Messages postés
51
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
26 septembre 2015
1
16 févr. 2010 à 14:32
16 févr. 2010 à 14:32
Liste des fonctions qui ne sont pas utilisées
SELECT Numfonction, Libfonction
FROM FONCTION
WHERE Nbemp=0;
la tu n'as besoin que de la table FONCTION car il y a la Propriété Nbemp qui t'indique si la fonction est utilisé ou pas
SELECT Numfonction, Libfonction
FROM FONCTION
WHERE Nbemp=0;
la tu n'as besoin que de la table FONCTION car il y a la Propriété Nbemp qui t'indique si la fonction est utilisé ou pas
xsure
Messages postés
51
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
26 septembre 2015
1
16 févr. 2010 à 14:39
16 févr. 2010 à 14:39
Somme des salaires par service
SELECT SERVICE.Nomserv, SUM(EMPLOYE.salemp) AS "Total Salaires"
FROM EMPLOYE, SERVICE
WHERE SERVICE.Numserv=EMPLOYE.Numserv
GROUP BY SERVICE.Nomserv;
C'est quasiment pareil que les salaires du service compta sauf que tu ne précise pas dans WHERE :
AND SERVICE.Nomserv="COMPTABILITE"
PS: Le AS dans la clause SELECT permet de renommé la colonne résultat SUM(EMPLOYE.salemp (soucis de présentation)
SELECT SERVICE.Nomserv, SUM(EMPLOYE.salemp) AS "Total Salaires"
FROM EMPLOYE, SERVICE
WHERE SERVICE.Numserv=EMPLOYE.Numserv
GROUP BY SERVICE.Nomserv;
C'est quasiment pareil que les salaires du service compta sauf que tu ne précise pas dans WHERE :
AND SERVICE.Nomserv="COMPTABILITE"
PS: Le AS dans la clause SELECT permet de renommé la colonne résultat SUM(EMPLOYE.salemp (soucis de présentation)
xsure
Messages postés
51
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
26 septembre 2015
1
16 févr. 2010 à 15:39
16 févr. 2010 à 15:39
L'infographiste le mieu payé
SELECT Nomemp, Salemp
FROM EMPLOYE, FONCTION
WHERE EMPLOYE.Numfonction=FONCTION.Numfonction
AND Libfonction="INFORGRAPHISTE"
AND Salemp=(SELECT MAX(Salemp) FROM EMPLOYE);
-Dans ta base de donné tu as fais une faute, tu as marqué INFORGRAPHISTE donc dans la requette il faut aussi marqué INFORGRAPHISTE
-le MAX doit etre une condition donc dans SELECT tu ne mais que Salemp pour qu'il affiche le salaire et en condition AND tu fais une sous selection : salaire = salaire max de la table EMPLOYE qui se traduit par Salemp=(SELECT MAX(Salemp) FROM EMPLOYE)
SELECT Nomemp, Salemp
FROM EMPLOYE, FONCTION
WHERE EMPLOYE.Numfonction=FONCTION.Numfonction
AND Libfonction="INFORGRAPHISTE"
AND Salemp=(SELECT MAX(Salemp) FROM EMPLOYE);
-Dans ta base de donné tu as fais une faute, tu as marqué INFORGRAPHISTE donc dans la requette il faut aussi marqué INFORGRAPHISTE
-le MAX doit etre une condition donc dans SELECT tu ne mais que Salemp pour qu'il affiche le salaire et en condition AND tu fais une sous selection : salaire = salaire max de la table EMPLOYE qui se traduit par Salemp=(SELECT MAX(Salemp) FROM EMPLOYE)
xsure
Messages postés
51
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
26 septembre 2015
1
16 févr. 2010 à 15:41
16 févr. 2010 à 15:41
Si tu veut tous les infographiste par ordre de salaire décroissant, c'est :
SELECT Nomemp, Salemp
FROM EMPLOYE, FONCTION
WHERE EMPLOYE.Numfonction=FONCTION.Numfonction
AND Libfonction="INFORGRAPHISTE"
ORDER BY Salemp DESC;
SELECT Nomemp, Salemp
FROM EMPLOYE, FONCTION
WHERE EMPLOYE.Numfonction=FONCTION.Numfonction
AND Libfonction="INFORGRAPHISTE"
ORDER BY Salemp DESC;
xsure
Messages postés
51
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
26 septembre 2015
1
16 févr. 2010 à 15:43
16 févr. 2010 à 15:43
J'espere que tout a bien fonctionné, confirme moi,
merci
merci