Problème SQL [TRES IMPORTANT )
Résolu
sheva57
-
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.
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:
- Problème SQL [TRES IMPORTANT )
- Logiciel sql - Télécharger - Bases de données
- Requete sql pix - Forum PHP
- Additions et multiplication dans des requêtes SQL ✓ - Forum MySQL
- Sql query download - Télécharger - Gestion de données
- Ora-00933: la commande sql ne se termine pas correctement ✓ - Forum Oracle
12 réponses
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.
Ca doit marcher ;)
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 ;)
merci beaucoup poour ta réponse, je viens d'essayer et sa me remet pareil... je ne sait pas du tout quoi faire..
Salut,
alors essaie
alors essaie
SELECT Services.CodeService, COUNT(NumSalarié) FROM Services, Salariés WHERE Services.CodeService=Salariés.CodeService GROUP BY CodeService
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
il demande le nombre de salariés regroupés par service. merci pour ton aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
quel âne je fais ...
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.
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.
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
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
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??
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??
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.
Il faut donc aller le chercher tout de même, donc la jointure doit apparaitre.