calcul le reste des rembourssement

kimou
Invité n'ayant pas de compte PHPfrance

21 févr. 2011, 16:20

salut
voila mon problème
jais 3 table personne,emprunt,rendre
personne(num-per,nom,prenom)
emprunt(num_per,date_emprt,mont_emprt)
remboursement(num_per,date_remb,mont_remb)

je veux calculé le reste des remboursements pour chaque personne
voila mon code
select emprunt.num_per ,sum(emprunt.mont_emprt) as emprunter,sum(remboursement.mont_remb) as reùboursement from emprunt,rendre where emprunt.num_per=rendre.num_per group by emprunt.num_per

cette requette me donne des fausse resultas
vraiment je me suis bloqué
aider nous svp

ViPHP
ViPHP | 2577 Messages

21 févr. 2011, 17:24

Bonjour,

Ta requête ne fonctionne pas car la jointure est un produit cartésien. Chaque emprunt est relié à tous les remboursements et réciproquement.

Il faudrait que tu crées une vue avec :
select num_per ,mont_emprt as emprunter,0 as remboursement from emprunt
union
select num_per ,0 as emprunter,mont_remb as remboursement from rendre
Ensuite tu fait un select avec le group by et les sum() sur la vue

kimou
Invité n'ayant pas de compte PHPfrance

22 févr. 2011, 13:35

Merci pour ta reponce
est Ce Que Tu peut m'aider un peut plus car je ne ces pas comment je vais faire le group by et les sum() sur la vue
encore merci

ViPHP
ViPHP | 2577 Messages

23 févr. 2011, 15:01

Dans phpmyadmin tu fais une fois :

CREATE VIEW vue AS
(SELECT num_per ,mont_emprt AS emprunter,0 AS remboursement FROM emprunt
UNION
SELECT num_per ,0 AS emprunter,mont_remb AS remboursement FROM rendre);

et dans ton PHP tu fais un select num_per ,sum(emprunter) AS emprunter,sum(remboursement ) AS remboursement from vue group by num_per