IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Compteur d'heures de travail


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 7
    Par défaut Compteur d'heures de travail
    Bonjour à tous.

    J'ai un problème avec une requête sql: http://sqlfiddle.com/#!2/b69c2/4/0

    C'est ma table de pointage pour les heures de travail et j'aimerais avoir le total de minutes du jour en comptant la différence entre chaque pointage.

    exemple:

    Arrivée: 11:25
    Sortie: 11:26
    Arrivée: 11:39
    Sortie: 11:40

    total = 2mn

    Or ma requête m'en affiche 15 en faisant la différence entre 11:25 et 11:40 uniquement.

    Quelqu'un pourrait m'aider svp? merci

  2. #2
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Saluton,

    Je n'ai malheureusement pas d'environnement disponible pour tester la proposition suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    SELECT YT0.id,
          TIMESTAMPDIFF(MINUTE, YT2.date_heure, YT0.date_heure) as minuteWorked, 
          YT0.EmployeeId, 
          YT0.date_heure AS Début,
          YT2.date_heure AS Fin
    FROM YourTable AS YT0
    INNER JOIN (SELECT * FROM YourTable AS YT1
                WHERE YT1.Status = '1'
                    AND
                      YT1.date_heure > YT0.date_heure
                    AND
                      YT1.EmployeeId = YT0.EmployeeId
                ORDER BY  YT1.date_heure LIMIT 1) as YT2
    ON YT0.EmployeeId = YT2.EmployeeId
    WHERE YT0.Status = '0'
    Je crains que le ORDER BY et le LIMIT de la sous-requête ne soient rejetés.
    Pas sûr non plus que la corrélation de la sous-requête fonctionne, YT0 est-il connu de la sous-requête, normalement oui, mais sans tester ...
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  3. #3
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Bonjour

    Comme ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    SELECT 
        Sortie.EmployeeId
        , MAX(Sortie.date_heure) AS DerniereSortie 
        , SUM(TIMESTAMPDIFF(MINUTE, Entree.date_heure, Sortie.date_heure)) as minuteWorked
    FROM YourTable  Entree
    INNER JOIN YourTable Sortie
        ON Sortie.employeeID = Entree.employeeID
        AND Sortie.date_heure > Entree.date_heure
        AND Sortie.Status = 0
    LEFT JOIN YourTable L
        ON L.employeeID = Sortie.employeeID
        AND L.date_heure < Sortie.date_heure
        AND L.date_heure > Entree.date_heure
    WHERE Entree.Status = 1
    AND L.id IS NULL
    GROUP BY Sortie.EmployeeId

Discussions similaires

  1. Viens de perdre 10 heures de travail
    Par Lemon_citron dans le forum Windows
    Réponses: 9
    Dernier message: 20/06/2008, 20h05
  2. Somme des heures de travail.
    Par Nounours1 dans le forum Excel
    Réponses: 5
    Dernier message: 27/05/2008, 18h34
  3. gestions des heures de travail
    Par bzhmorgane dans le forum Modélisation
    Réponses: 2
    Dernier message: 24/05/2007, 08h56
  4. cumul des heures de travail
    Par laklak dans le forum Bases de données
    Réponses: 20
    Dernier message: 08/05/2006, 13h52
  5. [VB]Problème d'heure de travail
    Par AlfiQue dans le forum VB 6 et antérieur
    Réponses: 17
    Dernier message: 18/02/2006, 18h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo