Problème SQL [TRES IMPORTANT )

Résolu
sheva57 -  
 sheva57 -
Bonjour,

Demain je passe mon oral de gestion pour le bac et je dois présenté des requètes SQL...
malheuresement il y a une requète où sa me met systématiquement :

le champ spécifié [CodeService] peut désigner plusieurs
| tables listées dans la clause FROM de votre instruction SQL .

donc voici la requète

SELECT CodeService, COUNT(NumSalarié)
FROM Services, Salariés
WHERE Services.CodeService=Salariés.CodeService
GROUP BY CodeService;

merci de votre aide.
A voir également:

12 réponses

Jodu Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   14
 
Salut,

le message est pourtant très clair... Ton champ est présent dans tes deux tables, SQL ne sait pas lequel prendre.
Il faut que tu préfixes du nom de la table le nom de ton champ.

SELECT Salariés.CodeService, COUNT(NumSalarié) 
FROM Services, Salariés 
WHERE Services.CodeService=Salariés.CodeService 
GROUP BY CodeService; 


Ca doit marcher ;)
0
sheva57
 
merci beaucoup poour ta réponse, je viens d'essayer et sa me remet pareil... je ne sait pas du tout quoi faire..
0
Jodu Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   14
 
Salut,

alors essaie
SELECT Services.CodeService, COUNT(NumSalarié) 
FROM Services, Salariés 
WHERE Services.CodeService=Salariés.CodeService 
GROUP BY CodeService
0
sheva57
 
j'avais déja essayé sa ne marche toujours pas.... peut ètre que la requète est fausse je ne sais pas
il demande le nombre de salariés regroupés par service. merci pour ton aide
0

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

Posez votre question
Jodu Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   14
 
Re,

quel âne je fais ...
SELECT Service.CodeService, COUNT(NumSalarié) 
FROM Services, Salariés 
WHERE Services.CodeService=Salariés.CodeService 
GROUP BY Service.CodeService; 


Explication : quand un champ a le même nom dans deux tables différentes, tu dois préciser en préfixant ce champ par le nom de ta table, afin que SQL ne s'embrouille pas.

Ta requête est juste sinon.
0
xXPika74Xx Messages postés 115 Date d'inscription   Statut Membre Dernière intervention   13
 
Et une jointure peut être si tu fait une recherche dans deux table....


SELECT Services.CodeService, COUNT(NumSalarié)
FROM Services JOIN Salariés
ON Services.CodeService=Salariés.CodeService
WHERE Services.CodeService=Salariés.CodeService
GROUP BY Services.CodeService

La sa devrait marcher normalement
0
Jodu Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   14
 
Pika, la jointure par la clause Where suffit, en tous cas sur Access et Mysql
0
xXPika74Xx Messages postés 115 Date d'inscription   Statut Membre Dernière intervention   13
 
Jamais appris sa XD désolé je savait pas....

Mais d'après ce qu'il dit il veut juste le nombre de salarié par service

Donc si il veut juste utiliser CodeService il n'a même pas besoin de faire de jointure donc du coup:

SELECT CodeService, COUNT(NumSalarié)
FROM Salariés
GROUP BY CodeService;

devrait suffir non??
0
Jodu Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   14
 
Ca marchera pas, numsalarie est clé primaire de Salariés, et pas clé étrangère de Services.
Il faut donc aller le chercher tout de même, donc la jointure doit apparaitre.
0
sheva57
 
merci pour vos réponses. Jodu sa marche ^^ merci beaucoup de ton aide tu me sauves la vie !!
0
Jodu Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   14
 
De rien !

mets en résolu, et bonne chance pour ton oral
0
sheva57
 
merci. bonne soirée
0