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 et SQL. Discussion :

Calcul de durée sur deux enregistrements non consécutifs


Sujet :

Requêtes et SQL.

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Septembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2016
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Calcul de durée sur deux enregistrements non consécutifs
    Bonjour,

    Ayant developper un fichier de pointage sur open office, j'aimerai faire l'équivalent sur Access (2007). J'ai encore quelques restes d'Access de mes études cependant je butte sur un point fondamental.

    Basiquement j'aimerai faire un calcul de durée entre deux enregistrements, pas forcément consecutif, basé sur un ou plusieurs champs d'une table :

    Exemple :

    Nom : exemple.jpg
Affichages : 396
Taille : 58,1 Ko

    Est-ce possible? Si oui, quelle serait la méthodologie?

    Je vous remercie par avance.

    Cdt

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Bonjour,

    Dans une requête, un regroupement sur le nom, avec les fonctions Min et Max, pour déterminer la date minimum et maximum, ensuite calculer l'écart entre ces 2 dates.

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Septembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2016
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci de la réponse, cependant je n'ai pas été assez général.

    Il peut y avoir plus deux lignes par nom :

    Nom : exemple2.jpg
Affichages : 345
Taille : 74,5 Ko


    Cdt

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Rebonjour,

    Il faut utiliser une sous-requête pour déterminer la date suivant la date courante :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Table1.N°, Table1.Nom, Table1.Profil, Table1.[Date Début] AS dateCourante, (select Min([Date Début]) from Table1 T1 where T1.Nom=Table1.Nom and T1.[Date Début]>Table1.[Date début]) AS DateSuivante, IIf(Not IsNull([DateSuivante]),HeureSup24([DateSuivante]-[DateCourante]),Null) AS Durée
    FROM Table1
    ORDER BY Table1.Nom, Table1.Profil;

    Ici je suppose pour simplifier que la source est une table nommée "table1".

    La fonction HeureSup24 permet de calculer la durée, elle est disponible dans la faq :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Function HeureSup24(dtm As Date) As String
        ' Calcule le nombre d'heures
        HeureSup24 = DateDiff("h", 0, dtm)
        ' On ajoute les minutes et les secondes
        HeureSup24 = HeureSup24 & Format(dtm, ":nn:ss")
    End Function

    Je te joins l'exemple.

    Cdlt,
    Fichiers attachés Fichiers attachés
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  5. #5
    Candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Septembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2016
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Génial, c'est exactement ça.

    Merci

    Cdt

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    De rien,

    Quand il y a quelque chose à récupérer sur les lignes précédentes il faut penser aux sous-requêtes ou aux fonctions de domaine.

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] calcul de durée entre deux réels
    Par patbeautifulday dans le forum Excel
    Réponses: 8
    Dernier message: 26/05/2009, 13h10
  2. calcul de durée sur une suite de données
    Par madousn dans le forum Requêtes
    Réponses: 4
    Dernier message: 24/06/2008, 10h04
  3. Réponses: 10
    Dernier message: 14/12/2007, 14h13
  4. Réponses: 3
    Dernier message: 19/12/2006, 17h43
  5. Réponses: 7
    Dernier message: 13/12/2006, 12h57

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