Bonjour,
je vais vous expliquez mon problème assez complexe :
tous d'abord j'ai une table personnel :
http://img838.imageshack.us/img838/6422/persyl.jpg
avec le matricule de la personne, nom, prenom, statut (id d'une autre table) centre (id d'une autre table) et fonction (id d'une autre table)
ensuite j'ai une table manoeuvres :
http://img708.imageshack.us/img708/8375/manwn.jpg
avec l'id de la manoeuvre,
le n° de module,
le libelle de la manoeuvre,
le service,
etc.... (moins important)
enfin j'ai ma table pointage qui regroupe les personnes qui on réalise une manoeuvres et la date de réalisation.
http://img267.imageshack.us/img267/7332/poins.jpg
pointer_sp est l'id de la personne pointer
pointer_fma est l'id de la manoeuvre pour laquelle il est pointer
et pointer_date correspond à la date du pointage
j'ai crée une requête qui m'affiche le nom des personnes et le nombres de manoeuvres (distincte) qu'ils ont réalisé avec comme condition :
que personnel.pers_centre = 5
et personnel.pers_fonction = 3
la requête fonctionne mais je souhaite ajouter une autre condition qui ne m'afficherais que les manoeuvres de la table pointage pour la quel le service est égal à "EM Formation" ! je ne sais pas ou placer cette condition ???
Voici ma requete :
donc je me demandé si je ne devrais pas rajouter la condition ici :Code:
1
2
3
4
5
6
7
8
9
10
11 SELECT CONCAT( p.pers_nom, ' ', p.pers_prenom, ' ', g.grd_grade ) AS Nom, COUNT( DISTINCT po.pointer_fma ) AS pourcent FROM personnels p JOIN grade g ON g.id_grade = p.pers_grade LEFT JOIN pointage po ON po.pointer_sp = p.id_pers CROSS JOIN ( SELECT COUNT( * ) AS nb_manoeuvre FROM manoeuvres )m WHERE p.pers_centre =5 AND p.pers_fonction =3 GROUP BY CONCAT( p.pers_nom, ' ', p.pers_prenom, ' ', g.grd_grade ) , m.nb_manoeuvre
mais ce n'est pas possible biensur !Code:COUNT( DISTINCT po.pointer_fma WHERE manoeuvres.fma_impose = "EM Formation" )
merci d'avance pour votre aide:mrgreen: