Nombre de Retard

Messages postés
17
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
11 mars 2008
-
Messages postés
17
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
11 mars 2008
-
Bonjour tout le monde !!!!!!!!!!
Je Suis en Stage et j'aimerais calculer le nombre de retards d'un employé sachant que je dispose de la base de données suivante:





      MAtricule  |      Nom       |                 MaDate           |       Etat
      1                  |      popo       |   01/01/2001 08:15          |       Entree
       2                 |       papa      |    01/01/2001  08:00        |       Entree
      3                  |       pipi        |     01/01/2001 08:30        |       Entree
      1                  |       popo      |    01/01/2001 12:00         |        Sortie
      2                  |        papa     |    01/01/2001  13:00        |       Sortie
      3                  |         pipi      |   01/01/2001 13:15          |       Sortie



On ne prend en consideration un retard que quand l'employé depasse 8h15.



P.S: On travaille avec ASP.NET





voila la requete que j'ai pu faire
donc si vous pouvez m'aider merci d'avance





select Matricule, Nom ,min(convert(datetime,date,108)) as  [inf] From Matable <?XML:NAMESPACE PREFIX = O /??>











where convert(varchar(50),date,103)='01/01/2001'











and  Etat like 'Entree'










having inf >'08:15:00'








(erreure sur...Champ inf n'est pas declarer :s)

3 réponses

Messages postés
258
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
27 octobre 2010
5
salut,
essai en mettant ton 'min' dans la clause Having et n'oublie pas le group by

select Matricule, Nom ,min(convert(datetime,date,108)) as  [inf] From Matable <?XML:NAMESPACE PREFIX = O /??>

where convert(varchar(50),date,103)='01/01/2001'

and  Etat like 'Entree'

group by matricule, nom

having min(convert(datetime,date,108)) >'08:15:00'

cordialement

Pat

 Don't Worry , Be Happy

<hr />lorsque le problème est résolu, pensez Réponse Acceptée
Messages postés
17
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
11 mars 2008

Merci bcp pneau pour votre reponse
Voila la requete que j'qi pu faire mais celle ci m'apporte toute les entrees apres 8:15:00 mais ce que je veux c'est n'est pas pour tout les entree mais seulement pour la 1er entrree  du date

select distinct employeeNumber, lastname ,min(convert(datetime,hostdate,108)) as  [inf],convert(varchar(20),hostdate,108) as time From feuil1
where convert(varchar,hostdate,103)='02/01/2007'
and  readerdescription like '%ent%'
group by employeeNumber,lastname,hostdate
having  (convert(varchar(20),hostdate,108)) > '08:15:00.00' 
 
Messages postés
17
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
11 mars 2008

Voila la bonne Reponse Merci bcp pour votre effort

SELECT MAtricule, Nom, Min (CONVERT(datetime ,Madate, 108)) 

FROM Matable
WHERE CONVERT(varchar, Madate, 103) = '02/01/2007'
and (CONVERT(varchar(20), Madate, 108)) > '08:15:00.00'
AND readerdescription = 'Entree'
GROUP BY MAtricule, Nom

pas de having qui porte sur des condition après le groupement.
Le groupement "group by" ne doit porter que sur les colonnes en commun sur les résultats regroupés (+ les fonctions d'aggrégation min, max ...).
si tu met la date ou l'heure dans le groupement, vur que c'est différent pour tout le monde, ça ne regroupe plus rien <?xml:namespace prefix v ns "urn:schemas-microsoft-com:vml" /??><v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype><v:shape id="_x0000_i1025" style="WIDTH: 11.25pt; HEIGHT: 11.25pt" alt="" type="#_x0000_t75"><v:imagedata o:href="http://www.clubic.com/api/forum/img/smiley/clinoeil.gif" src="file:///C:/DOCUME~1/testsql/LOCALS~1/Temp/msoclip1/02/clip_image001.gif"></v:imagedata></v:shape>

d'autre part, on emploi distinct ou group by, mais pas les 2 à la fois.




est ce possible d'executer la requete pour tout un mois, pas seulment pour un seul jour donné
alors pour chaque employé On aura...nombre de retards é aussi Le cumule des retards
Merci beaucoup !