Bonjour,
requete assez simple je pense mais je cale...
Les employés d'une entreprise passent un test, je stocke les résultats dans une table avec la date à laquelle ils ont passé le test.
Je voudrais ensuite retourner une liste contenant tout les résultats des tests pour une entreprise donnée mais un seul test par personne, le dernier fait.
Voici ma table :
tbl_Test :
idTest | idEmploye | detailQuestion | dateTest | soutienS
1 | 29 | 2-2-2-3-3-3| 2010-01-12 13:13:27 | 1
2 | 29 1-2-2-3-3-3 | 2009-01-12 13:13:27 | 2
3 | 30 | 2-1-2-3-3-3 | 2010-02-12 13:13:27 |2
4 | 31 | 2-2-4-3-3-3 | 2010-01-12 08:13:27 |1
5 | 14 | 2-2-4-3-3-3 | 2010-01-12 08:13:27 |2
je voudrais donc retourner les enregistrements 1, 3 et 4
(pas n°2, car cet employe '29' a fait un test apres, le n°1)
(pas n°5 car l'employé '14' n'appartient pas à la meme entreprise, defini ailleur)
Voici ma requete :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT e.id, k.detailQuestion FROM employe e, tbl_Test k WHERE e.idEntreprise = '32' AND e.id = k.idEmploye GROUP BY e.id
Alors cette requete marchouille... elle me retourne tout les tests faits par les employes de l'entreprise '32' avec un seul test par personne, mais pas forcement LE BON
je voudrais le dernier en date..
il faudrait integer un order by dateTest ??? mais où ? comment ?? après le group BY ? ou alors un distinct e.id puis dateTest ASC ????
ensuite j'ai essaye ca, mais ca va pas non plus, il me retourne un seul id employe mais les resultats de tous les tests de cet employe sont concatenes
et puis j'aime pas car j'ai besoin de faire le group_concat sur un autre champ apres.... et la je saurais plus ou mettre ma date.....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT e.id, GROUP_CONCAT( k.detailQuestion ORDER BY k.dateTest DESC SEPARATOR ';' ) liste FROM employe e, tbl_Test k WHERE e.idEntreprise = '32' AND e.id = k.idEmploye GROUP BY e.id
merci de votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT e.id, GROUP_CONCAT(k.soutienSoc ORDER BY k.soutienSoc ASC SEPARATOR ';') liste FROM employe e, tbl_Test k WHERE e.idEntreprise = '32' AND e.id = k.idEmploye GROUP BY e.id
Partager