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 :

Comment faire la somme des heures en requete pour un état ?


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué
    Homme Profil pro
    Technicien en numérisation
    Inscrit en
    Juillet 2002
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien en numérisation

    Informations forums :
    Inscription : Juillet 2002
    Messages : 338
    Points : 155
    Points
    155
    Par défaut Comment faire la somme des heures en requete pour un état ?
    Bonjour,

    Dans mon programme l'utilisateur saisit le temps qu'il a travaillé sur une demande de réparation... ex: 02:30. Les heures et les minutes sont dans des listes déroulantes.

    J'enregistre les heures et minutes en concaténation avec ":" entre les deux dans un champ Date/Heure abrégé. L'enregistrement se passe bien! Lorsque je regarde dans la table je vois bien les données inscrites dans le bon format. Tout est OK

    Maintenant je dois produire un rapport avec lequel je dois afficher le total d'heures qu'il a travaillé sur une demande. Pour une 1 demande de réparation, il peut avoir plusieurs réparations de XX:XX heures...

    L'état affiche les infos sur la demande. J'aimerais afficher le total d'heures travaillées en tout pour la demande. Si ça a été 00:30, 02:00, 01:30 le total doit afficher : 04:00

    Voici la requête que j'ai produite et qui affiche les infos... C'est long mais c'est tous ces détails qui sont demandés....


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    SELECT Demandes.ID_Demande, Demandes.Date_Creation, Techniciens.Nom_Tech, Clients.Nom_Client, Pieces.Id_Piece, InfosSystm.nom_Systm, Demandes.Desc_Prob, Last(HeuresDemandes.DateHeureReparation) AS DernierDeDateHeureReparation, Sum(HeuresDemandes.Durée) AS SommeDeDurée, Demandes.DescriptionRep, Desc_Prob.Qte8, Desc_Prob.Desc8, Desc_Prob.Piece8, Desc_Prob.Qte7, Desc_Prob.Desc7, Desc_Prob.Piece7, Desc_Prob.Qte6, Desc_Prob.Desc6, Desc_Prob.Piece6, Desc_Prob.Qte5, Desc_Prob.Desc5, Desc_Prob.Piece5, Desc_Prob.Qte4, Desc_Prob.Desc4, Desc_Prob.Piece4, Desc_Prob.Qte3, Desc_Prob.Desc3, Desc_Prob.Piece3, Desc_Prob.Qte2, Desc_Prob.Desc2, Desc_Prob.Piece2, Desc_Prob.Qte1, Desc_Prob.Desc1, Desc_Prob.Piece1
    FROM ((Techniciens INNER JOIN (Pieces INNER JOIN (InfosSystm INNER JOIN (Clients INNER JOIN Demandes ON Clients.[ID_Client] = Demandes.[ID_Client]) ON InfosSystm.[Id_Systm] = Demandes.[Id_Systm]) ON Pieces.[Id_Piece] = Demandes.[ID_Piece]) ON Techniciens.[ID_Tech] = Demandes.[ID_Tech]) INNER JOIN HeuresDemandes ON Demandes.[ID_Demande] = HeuresDemandes.[ID_Demande]) INNER JOIN Desc_Prob ON Demandes.[ID_Demande] = Desc_Prob.[ID_Demande]
    GROUP BY Demandes.ID_Demande, Demandes.Date_Creation, Techniciens.Nom_Tech, Clients.Nom_Client, Pieces.Id_Piece, InfosSystm.nom_Systm, Demandes.Desc_Prob, Demandes.DescriptionRep, Desc_Prob.Qte8, Desc_Prob.Desc8, Desc_Prob.Piece8, Desc_Prob.Qte7, Desc_Prob.Desc7, Desc_Prob.Piece7, Desc_Prob.Qte6, Desc_Prob.Desc6, Desc_Prob.Piece6, Desc_Prob.Qte5, Desc_Prob.Desc5, Desc_Prob.Piece5, Desc_Prob.Qte4, Desc_Prob.Desc4, Desc_Prob.Piece4, Desc_Prob.Qte3, Desc_Prob.Desc3, Desc_Prob.Piece3, Desc_Prob.Qte2, Desc_Prob.Desc2, Desc_Prob.Piece2, Desc_Prob.Qte1, Desc_Prob.Desc1, Desc_Prob.Piece1;
    Si vous pouvez m'aider ça serait très apprécié

    AngelEvil!

  2. #2
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    pourquoi ne pas enregistrer la durée des interventions en mn (Long) et afficher en HH:NN ?
    Cela simplifierait les calculs.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    bonjour,
    d'autant que si cela dépasse 24 h il faudra régler le problème par programme, le format 12:00 représente une heure et non un nombre d'heure.

  4. #4
    Membre habitué
    Homme Profil pro
    Technicien en numérisation
    Inscrit en
    Juillet 2002
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien en numérisation

    Informations forums :
    Inscription : Juillet 2002
    Messages : 338
    Points : 155
    Points
    155
    Par défaut
    Bonjour,

    le format 12:00 c'est Heure Abrégé ou Heure Réduit ?

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    bonour,

    HAbrégé HRéduit
    10:30 10:30
    12:00 12:00 si c'est midi
    17:30 05:30
    00:00 12:00 si c'est minuit

  6. #6
    Membre habitué
    Homme Profil pro
    Technicien en numérisation
    Inscrit en
    Juillet 2002
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien en numérisation

    Informations forums :
    Inscription : Juillet 2002
    Messages : 338
    Points : 155
    Points
    155
    Par défaut
    Logiquement si je demande a Access dans le créateur de requête de faire la somme des Heures saisies .... exemple 02:15 01:30 ca devrait donner 03:45 non ????

    quand je parts la requête la réponse devient un float.... genre 0.09565354

    Il se passe quoi alors ???? Si je peux comprendre pourquoi ca affiche du float alors je pourrai peut etre trouver une solution!

    Merci!

  7. #7
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    re,
    d'abord une lecture intéressante :
    http://access.developpez.com/faq/?page=dates#durees

    ensuite mieux qu'un long discours :

  8. #8
    Membre habitué
    Homme Profil pro
    Technicien en numérisation
    Inscrit en
    Juillet 2002
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien en numérisation

    Informations forums :
    Inscription : Juillet 2002
    Messages : 338
    Points : 155
    Points
    155
    Par défaut
    Intéressant comme explication et très intéressant la BD Access.

    Mais je ne peux pas faire cette chose dans le système que je produits. Le client demande juste une saisie pour le temps. aucune comparaison entre une heure depart et une heure arrivée...

    Ca fait six ans que je n'ai pas codé en VBA dans Access. Je fais tout normallement en VB....

    J'ai un état déjà fait connecté à une requête qui affiche toutes les informations.

    Si je demande dans ACTIVATE du report le prendre le no demande affiché et faire une requête du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    dim code = me.Report!Afficher_Rapport_Service![Id_Demande]
     
    requete = "select durée from tablex where id_demande = '" & code & "'"
    Est-ce que ca devrait fonctionner ? Car le no de demande est affiché dans mon programme VB.

    Puis après je devrais programmer un recordset pour lire la requête et calculer le temps avec une boucle qui additionnerait le temps. Puis pour finir affecter le resultat de l'addition qui est dans une variable dans un champ texte de mon report...

    Pensez-vous que ca serait fonctionnel ????

    Merci

    AngelEvil!

  9. #9
    Membre habitué
    Homme Profil pro
    Technicien en numérisation
    Inscrit en
    Juillet 2002
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien en numérisation

    Informations forums :
    Inscription : Juillet 2002
    Messages : 338
    Points : 155
    Points
    155
    Par défaut
    Bon ben un éclair de génie vient de corriger le tout.

    La BD est correcte. Rien a dire sur la structure.

    L'état est correct. Rien à dire.

    Le problème est l'affichage. En fouillant dans les options de la zone de texte je vois :masque de saisie.

    Je reparts l'état et le total d'heures apparait correctement!!!!

    YYYEEESSS!!!!

    Sans farce merci de votre aide! Je garde la BD que tu m'as envoyé le VIEUX!

    C'était sur qu'Access calculait le temps, mais c'était le masque de saisie qui n'était pas configuré.... Grrrrr! héhé

    Je ferme la discussion.

    Merci encore

    AngelEvil!

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/03/2012, 10h16
  2. [XL-2003] je voulais faire la somme des nombre comment faire ?
    Par aminepop dans le forum Excel
    Réponses: 13
    Dernier message: 03/08/2010, 21h54
  3. Réponses: 15
    Dernier message: 21/05/2010, 00h36
  4. Réponses: 3
    Dernier message: 09/05/2007, 11h43
  5. Comment faire du MDX à partir d'une requete SQL?
    Par Immobilis dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 10/11/2005, 09h46

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