|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
boss J-M Étudiant Inscription : novembre 2011 Messages : 19 ![]() |
bonjour,
J'ai une petite requête SQL a réaliser qui permet de connaitre le nombre d'interventions effectuées par chaque service . moi j'ai fait ceci qu'en pensez-vous??? Code :
|
||
|
|
02
|
|
|
#2 | ||
|
Membre Expert
![]() Baptiste ROUSSELÉtudiant Inscription : janvier 2011 Messages : 812 ![]() |
Je suppose que id_personne est une clé étrangère pointant sur l'id de la table Employés ?
Je suppose donc qu'une intervention ne peut être faite par une autre personne qu'un employé. Donc la requête revient à cela : Code sql :
__________________
|
||
|
|
00
|
|
|
#3 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 959 ![]() |
Que d'horreur dans cette requête !!!
1) les noms des tables et des colonnes ne sont pas des chaines de caractères et n'ont donc pas besoin d'apostrophe 2) faire un "WHERE 'id_personne' IN (SELECT * ..." c'est faire correspondre une colonne (id_personne) à plusieurs ( * ) ! 3) ne connaissez vous pas les jointures ? Bref, il serait temps d'apprendre le SQL. C'est pas un truc qu'on fait au hasard. C'est un langage de programmation évolué !!! Mon livre comme mon site web peuvent vous y aider ... A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
10
|
|
|
#4 |
|
Membre expérimenté
![]() Inscription : octobre 2002 Messages : 654 ![]() |
Bonjour,
Tu ne nous donnes pas la structure de tes tables et leur contenu, ce qui ne nous facilite pas la tâche pour t'aider. On ne sais pas s'il faut compter les interventions faites par les employés d'un service donné, ni si ce sont les interventions faites dans un service donné. C'est à dire si l'employé travaille tout le temps pour le service en question ou s'il est intervenu une ou plusieurs fois dans ce service. Sans la réponse à cette question et la structure de tes tables, on ne pourra pas t'aider, sauf te suggérer la lecture de tutoriel comme celui de SQLPRO. http://sqlpro.developpez.com/cours/sqlaz/ensembles/ Cordialement Soazig |
|
|
00
|
|
|
#5 | |
boss J-M Étudiant Inscription : novembre 2011 Messages : 19 ![]() |
Citation:
|
|
|
|
00
|
|
|
#6 | ||
|
Membre Expert
![]() Laure Consultante en Business Intelligence Inscription : avril 2007 Messages : 983 ![]() |
Dans un premier temps tu n'as pas assez d'informations dans ton SELECT, en effet si tu veux le nombre d'intervention pour chaque service alors on s'attend à avoir un résultat du type : NumService | NBIntervention
En adaptant la requête de transgohan on trouve ce que tu cherches. Code :
__________________
~ Lola ~ Ne pas oublier : et aussi :
|
||
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
Bonjour,
Avez-vous testez la requête que vous avez proposé ? Là au vu de votre mpd, il faut partir de la table service pour remonter, vi a des jointures internes, jusqu'aux interventions. Ensuite il faudra effectivement utiliser un group by sur l'id_service et compter les valeurs distincts d'interventions. Revenez avec une requête un peu plus réfléchie ? P.S.: lola06 vous faites abstraction du faites que plusieurs employés peuvent travailler sur une même intervention. ça lui fera un peu de travaille :p |
|
|
00
|
|
|
#8 | |||||||
|
Membre Expert
![]() Laure Consultante en Business Intelligence Inscription : avril 2007 Messages : 983 ![]() |
Citation:
Prenons un exemple : Table Employé Code :
Code :
Code :
__________________
~ Lola ~ Ne pas oublier : et aussi :
|
|||||||
|
|
00
|
|
|
#9 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
Bonjour,
En fait tout va dépendre de l'interprétation que l'on en fait. Là vous comptez le nombre d'intervenant sur une intervention par service et non le nombre d'intervention par service. Après ça peu ou non répondre à son besoin |
|
|
00
|
|
|
#10 |
boss J-M Étudiant Inscription : novembre 2011 Messages : 19 ![]() |
je ne comprends pas vraiment en quoi la requête proposés par lola06 n'est pas correcte, je ne suis pas très doué dans le domaine. Pouvez-vous me dire où est l’erreur svp et me proposer une requête correcte pour que je comprenne plus facilement. Ce n'est qu'un entrainement.
|
|
|
00
|
|
|
#11 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
Sa requête n'est pas fausse.
Faites une requête qui compte le nombre d'intervention distinct par service et vous comprendrez la différence. |
|
|
00
|
|
|
#12 | ||||
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
bonjour,
Je ne vois pas de colonne intevernir dans votre MCD au niveau de la table intervention. Je voyais plus une requête comme celle-ci : Code :
Code :
edit : je viens de m'apercevoir qu'il y a une jointure en trop, la table intervention est inutile dans la requête |
||||
|
|
00
|
|
|
#13 | |
boss J-M Étudiant Inscription : novembre 2011 Messages : 19 ![]() |
Citation:
Moi je cherche plus à compter le nombre d'interventions par service. Pouvez vous m'expliquer svp à quoi servent au juste dans la requête les lettres (a,b et c ) ??? |
|
|
|
00
|
|
|
#14 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
Biensur,
Ce sont des alias, ils permettent de renommer une table, colonne, sous-requete dans votre requete. Pour plus d'information http://sqlpro.developpez.com/ Et lisez les cours dans la partie "Initiation à SQL" (à gauche dans le blog) car sérieux vu vos questions vous n'avez jamais prit le temps de vous intéresser au sujet |
|
|
00
|
|
|
#15 |
boss J-M Étudiant Inscription : novembre 2011 Messages : 19 ![]() |
Je suis encore un grand novice j'ai soif de savoir de je cherche à m'améliorer ,je sais très bien que je n'ai pas le niveau ,mais bientôt ça viendra
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com