Salut zebandit.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| --------------
select * from facture
--------------
+--------+------------+-------------+
| fac_id | fac_date | fac_montant |
+--------+------------+-------------+
| 1 | 2015-01-01 | 100.00 |
| 2 | 2015-02-01 | 200.00 |
| 3 | 2015-03-01 | 300.00 |
+--------+------------+-------------+
--------------
select * from reglement
--------------
+--------+------------+-------------+
| reg_id | reg_date | reg_montant |
+--------+------------+-------------+
| 1 | 2015-02-25 | 100.00 |
+--------+------------+-------------+
--------------
select * from facture_has_reglement
--------------
+--------+--------+
| fac_id | reg_id |
+--------+--------+
| 2 | 1 |
+--------+--------+
--------------
select tb1.fac_id, tb1.fac_date, tb1.fac_montant
from facture as tb1
where fac_id NOT IN (
select tb2.fac_id
from `facture_has_reglement` as tb2
where tb1.fac_id = tb2.fac_id
)
--------------
+--------+------------+-------------+
| fac_id | fac_date | fac_montant |
+--------+------------+-------------+
| 1 | 2015-01-01 | 100.00 |
| 3 | 2015-03-01 | 300.00 |
+--------+------------+-------------+
--------------
select tb1.fac_id, tb1.fac_date, tb1.fac_montant
from facture as tb1
RIGHT OUTER JOIN `facture_has_reglement` as tb2
ON tb1.fac_id <> tb2.fac_id
--------------
+--------+------------+-------------+
| fac_id | fac_date | fac_montant |
+--------+------------+-------------+
| 1 | 2015-01-01 | 100.00 |
| 3 | 2015-03-01 | 300.00 |
+--------+------------+-------------+
Appuyez sur une touche pour continuer... |
Sinon, la structure de ta base est un peu compliqué.
Personnellement, je mettrais "facture" comme table père et "reglement" comme table fils.
Pas besoin d'avoir la table "facture_has_reglement".
Donc pour un père donné, tu peux avoir 0 fils (pas de reglements), 1 fils (un règlement partielle), N fils (N règlement partielle).
Tu auras juste à faire la somme de tous les montant du règlement, pour voir si elle est égale au montant de la facture.
@+
Partager