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 :

Requête pour calculer la somme des durées [AC-2003]


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Mars 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Mars 2016
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Requête pour calculer la somme des durées
    Bonjour,

    Je fais appel à vous car je ne m'en sors pas

    Voici mon problème :


    J'ai une table T_JDB qui contient des enregistrements avec notamment des champs "debut_avarie" et "fin_avarie".

    J'ai une requête R_duree qui calcule la durée de l'avarie et me la donne en hh:mm.

    J'ai une requête R_indispo_par_equipement qui extrait de T_JDB tous les enregistrements selon l'équipement demandé
    avec, pour chacun, la durée.

    J'ai un formulaire F_indispo_par_equipement qui m'affiche le tout.

    Mon soucis : je voudrais, créer une requête "durée totale indispos" qui ferait la somme
    de toutes les durées extraites pour ledit équipement afin de l'afficher en pied de F_indispo_par_equipement,
    mais je suis dessus depuis 3 jours et je tourne en rond et n'obtiens pas de résultat...

    Pourriez-vous m'aider?

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    J'imagine que tu as déjà parcouru le FAQ et les autres sujets concernant l'utilisation des dates sous Accee sur le forum comme CELUI-CI.
    Et que tu utilises une fonction pour obtenir :
    J'ai une requête R_duree qui calcule la durée de l'avarie et me la donne en hh:mm.
    Comme ça, et avec les éléments que tu donnes, je dirai qu'il te faut convertir ce champ en numérique par des fonctions adéquates (exemple ici) et faire les opérations et les reconvertir au format jour:hh:mm après.

    Un extrait de la table avec des données bidon serait nécessaires pour de plus amples solutions.

    Cordialement.
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Mars 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Mars 2016
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Merci pour cette réponse rapide!

    Ce sera effectivement plus parlant avec un visuel, voici ma table :

    Nom : table.JPG
Affichages : 384
Taille : 59,1 Ko


    J'arrive à extraire de la table les enregistrements qui concernent uniquement "x" (3è colonne) avec chaque durée (dernière colonne).
    Je voudrais donc faire la somme des durées extraites pour le site "x" pour avoir une durée totale à afficher dans une case sur mon formulaire.

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Comment tu fais ton calcul de DUREE_AVARIE parce qu'à la ligne 2, on devrait avoir 20 jours entre le 29/04/2016 et le 09/04/2016 ??
    Pour avoir ce que tu veux, comme je disais, je convertirais les dates et temps en numériques et ferais tous les calculs et ne convertirais en format j:hh:mm que lors de l'affichage.
    Ce qui veut dire qu'une simple requête de regroupement avec une somme sur les valeurs des durées te donnerait les résultats par équipement.

    Si tu as du mal, est-ce que tu peux poster ta base avec la table uniquement.

    Cordialement.
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Mars 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Mars 2016
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par madefemere Voir le message
    Comment tu fais ton calcul de DUREE_AVARIE parce qu'à la ligne 2, on devrait avoir 20 jours entre le 29/04/2016 et le 09/04/2016 ??
    Effectivement je n'avais pas vu cette erreur (c'est une table de travail factice)
    Je calcule comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Format((SérieHeure(0;(DiffDate("n";[DEBUT AVARIE];[FIN AVARIE]));0));"hh:mm")
    Je vais essayer ta solution et je te dirai si j'y arrive.

    Merci

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Mars 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Mars 2016
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    J'ai avancé sur la question mais je bloque à nouveau!
    Voila où j'en suis :
    j'ai donc calculé mes durées avec DUREE BIS: ([FIN AVARIE]-[DEBUT AVARIE])*24*60
    j'obtiens un résultat numérique décimal
    Ensuite je convertis en hh:mm:ss avec EN HEURES : (Ent([DUREE]/60)+([DUREE] Mod 60)/60)/24

    Et j'obtiens par exemple :
    DEBUT AVARIE /// FIN AVARIE /// DUREE /// EN HEURES
    12/08/2015 07:00:00 ///12/08/2015 12:00:00 ///300,000000003492 /// 05:00:00

    Jusqu'ici tout va bien.

    Là où j'ai encore un problème, c'est quand les durées sont supérieures à 24h, par exemple :
    DEBUT AVARIE /// FIN AVARIE /// DUREE /// EN HEURES
    04/10/2015 06:00:00 /// 16/10/2015 08:00:00 /// 17760,0000000035 /// 08:00:00

    La durée est erronée....

    Comment faire fonctionner le tout pour des durées >24h?

  7. #7
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 339
    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 339
    Points : 19 575
    Points
    19 575
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    Voici une entrée dans la faq qui traite de l'affichage de durées supérieures à 24 heures :

    dates & durées

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ? HeureSup24(CDate( #10/16/2015 08:00:00#-#10/04/2015 06:00:00#))
    à+
    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

  8. #8
    Futur Membre du Club
    Femme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Mars 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Mars 2016
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Ca y est j'ai enfin réussi à obtenir ce que je voulais!!!!

    Merci à vous qui m'avez aidée à résoudre mon problème!!

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

Discussions similaires

  1. [AC-2010] requête pour somme des durées de + de 24h
    Par cyberbab dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 28/10/2013, 19h40
  2. Requête pour calculer le solde des fournisseurs
    Par Issam dans le forum Langage SQL
    Réponses: 3
    Dernier message: 03/07/2012, 10h12
  3. Réponses: 13
    Dernier message: 18/06/2011, 14h01
  4. [Doctrine] requête pour calculer une somme
    Par flora806 dans le forum ORM
    Réponses: 26
    Dernier message: 23/03/2011, 11h38
  5. Requête pour calculer la taille des datafiles
    Par AlternantOracle dans le forum DB2
    Réponses: 9
    Dernier message: 11/05/2010, 14h24

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