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 :

calcul le reste des montants


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    agent de fisc(les impots)
    Inscrit en
    Juillet 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : agent de fisc(les impots)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 427
    Points : 111
    Points
    111
    Par défaut calcul le reste des montants
    salut tout le monde
    j'utulise delphi 7 avec interbase 6.5
    jai 3 table personne,emprunt,rendre
    personne(num-per,nom,prenom)
    emprunt(num_per,date_emprt,mont_emprt)
    rendre(num_per,date_rendu,mont_rendu)
    je veux calculé le reste des montants pour chaque personne
    est pour cela ji utulisé cette requette
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ibquery1.close;
    ibquery1.sql.clear;
    ibquery1.sql.add('select emprunt.num_per as Numero,sum(emprunt.mont_emprt) as emprunter,sum(rendre.mont_rendu) as rendu from emprunt,rendre where emprunt.num_per=rendre.num_per group by emprunt.num_per');
    ibquery1.open;
    l'affichage sera dans une dbgrid
    le probleme la requtte me donne des fausse resultas
    vraiment je me suis bloqué
    aider moi svp

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Je vois en premier lieu un problème de modélisation.
    La table RENDRE (que j'aurais appelée REMBOURSEMENT) n'est pas liée à un emprunt.
    Ton modèle de données ne permet pas de savoir à quel emprunt est affecté le remboursement. Pire si une même personne contracte plusieurs emprunts.

    Je verrais plutôt ceci:
    PERSONNE(NUM_PERS, NOM, PRENOM)
    EMPRUNT(NUM_EMPRT, NUM_PERS, DATE_EMPRT, MONT_EMPRT)
    REBOURSEMENT(NUM_EMPRT, DATE_REMBT, MONT_REMBT)

    La requête devient en gros:
    Code sql : 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
      P.NUM_PERS,
      E.NUM_EMPRT,
      E.MONT_EMPRT AS EMPRT,
      SUM(COALESCE(R.MONT_RENDU, 0)) AS RMBT
    FROM
      PERSONNE P
      INNER JOIN EMPRUNT E
        ON E.NUM_PERS = P.NUM_PERS
      LEFT JOIN REBOURSEMENT R
        ON R.NUM_EMPRT = E.NUM_EMPRT
    GROUP BY
      P.NUM_PER,
      E.NUM_EMPRT,
      E.MONT_EMPRT
    HAVING
      SUM(COALESCE(R.MONT_RENDU, 0)) < E.MONT_EMPRT;

    @+

Discussions similaires

  1. [V8] Calculer le reste du salaire des employés
    Par othman3535 dans le forum Odoo (ex-OpenERP)
    Réponses: 1
    Dernier message: 25/02/2015, 12h06
  2. [WD15] Calcul d’accroissement des montants annuels
    Par djenny dans le forum WinDev
    Réponses: 12
    Dernier message: 15/04/2014, 16h22
  3. Un script qui calcule la somme des montants d'un formulaire
    Par akaquane dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 17/10/2011, 13h53
  4. Réponses: 9
    Dernier message: 27/04/2011, 10h08
  5. Algo pour calculer des montants de remboursement
    Par code.nemesis dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 16/12/2008, 00h06

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