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

Bases de données Delphi Discussion :

Double arrondi sur un dataset


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 98
    Par défaut Double arrondi sur un dataset
    Bonjour,

    je n'ai pas trouvé de titre approprié, mais voilà le problème.

    J'ai un dataset qui me récupère les champs suivants:
    rayon, personne, date, activité, durée

    au final une seule chose m'intéresse, avoir le cumul de la durée par rayon

    SAUF que selon une règle établie (par personne), je veux arrondir soit la durée de mon activité, soit le cumul de la durée sur une journée pour une personne

    et pour l'instant je ne vois pas trop comment faire...

    merci de vos lumières

    Isa

  2. #2
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Par défaut


    je te suggère de déplacer (demande à un modo) ton sujet dans le forum delphi et bases de données car il me semble plus approprié.
    je pense que ton problème pourrait être résolu par une requete SQL, laquelle je ne sais pas.
    je pense (trop en fait) que selon la règle à établir (par personne) il se pourrait que tu ne puisses pas résoudre le problème avec une requete SQL, et dans ce cas tu devras parcourir ton dataset manuellement et implémenter un algorithme pour aboutir au résultat escompté

    bonne chance .

  3. #3
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    salut

    en fait dans ton cas il faut que tu passe par une operation intermediare

    la premiere etape est de remplir une table (temporaire si possible) avec la somme arrondi par personne
    et ensuite reprendre cet table afin de faire l'arrondi final
    donc on a

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    insert into tmp(rayon, personne,durée)
    select  rayon, personne,Arrondi(sum(durée))
    from matable 
    group by rayon, personne
    et ensuite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select  rayon, Arrondi(sum(durée))
    from tmp 
    group by rayon

    @+ Phil

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 98
    Par défaut
    Justement j'ai plus de souci avec l'algo à établir que la requête en elle-même car selon la règle définie au niveau de la personne, l'arrondi se fera sur la durée de l'activité ou sur la durée du total de la journée.
    ce qui veut dire qu'au sein de mon dataset je peux avoir des personnes dont la règle est arrondir la durée d'activité et d'autres dont la règle est arrondir la durée de la journée, sachant que par ailleurs une personnes peut avoir plusieurs activités par jour.

    Pour l'instant j'ai fait un truc assez complexe mais je ne trouve pas mieux. J'ai modifié ma requête pour qu'elle me récupère tous les champs dont j'ai besoin.
    J'enregistre le contenu du dataset dans une liste d'objets, j'en profite pour appliquer la règle d'arrondi si elle doit s'appliquer sur la durée d'activité.

    Je parcours une deuxième fois mon dataset et je cumule ma durée d'activité pour avoir la durée journalière et j'applique la règle d'arrondi sur la durée de la journée si besoin.

    Je me retrouve donc avec deux listes d'objets, une qui contient les infos avec arrondi par durée activité et l'autre qui contient les infos avec arrondi par durée journée, je compile ces deux listes en une seule en cumulant les valeurs.

    c'est pas super pratique mais je n'ai pas trouvé mieux.

    Isa

  5. #5
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    salut

    comment determine tu que l'arrondi se determine sur la journée ou sur l'activité ?

    si ce n'est pas un critere arbitraire tu pourra effectuer tous cela a l'aide de requete sql

    @+ Phil

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 98
    Par défaut
    Non, je ne peux pas effectuer cela par une simple requête sql (c'est pour ça que j'avais posté dans le forum delphi au départ)

    car
    1 : l'arrondi n'est pas un simple round mais un arrondi aux x minutes supérieures ou inférieures

    2 : chaque personne peut avoir une règle d'arrondi différente (par durée activité ou par durée journée) cette règle est défini par personne.

    à bientôt,

    Isa

Discussions similaires

  1. problème d'arrondi sur un Double
    Par Gordon Freeman dans le forum Général Java
    Réponses: 2
    Dernier message: 23/06/2010, 10h35
  2. [Math]Problème troncage ou arrondi sur des valeurs
    Par Carrel dans le forum Général Java
    Réponses: 6
    Dernier message: 07/10/2009, 15h11
  3. [C++] faire un arrondi sur un double
    Par pavlacki dans le forum C++
    Réponses: 6
    Dernier message: 13/11/2005, 16h50
  4. comment autoriser le double clic sur un champ desactivé ?
    Par linou dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 28/04/2005, 17h23
  5. [langage] Erreur d'arrondi sur petits nombres
    Par Tchetch dans le forum Langage
    Réponses: 7
    Dernier message: 12/01/2005, 10h11

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