J'utilise la requête suivante pour obtenir des résultats corrects pour chaque lot. Par exemple, si je veux à voir le total de la facture pour le lot 2010 ...mysql jointure interne avec le groupe par
SELECT COALESCE(sum(i.amount),0) AS amount,
COALESCE(sum(i.discount),0) AS discount,
COALESCE(sum(i.amount) - sum(i.discount),0) AS netpay,
b.name AS batch
FROM fm_batches b
INNER JOIN fm_invoices i
LEFT JOIN fm_students s ON i.student_id = s.id
GROUP BY b.name
Et ses sortir les résultats suivants ...
| amount | discount | netpay | batch |
+--------+----------+----------+-------+
| 2500 | 500 | 2000 | 2011 |
+--------+----------+----------+-------+
| 2500 | 500 | 2000 | 2010 |
+--------+----------+----------+-------+
| 2500 | 500 | 2000 | 2009 |
+--------+----------+----------+-------+
| 2500 | 500 | 2000 | 2008 |
+--------+----------+----------+-------+
Je suis sûr que je suis en train de faire quelque chose faux dans ma requête car il donne les mauvais résultats. Il devrait retourner 0 si rien n'a été trouvé pour le lot 2010. merci.
Quelle est votre relation entre les factures et les lots ... y a-t-il une colonne de lot sur la table des factures? – DRapp
Il n'y a pas de clause ON pour les factures JOIN. Quelle est la relation entre les factures et les lots/abonnements? – Galz
@DRapp non je n'ai pas la colonne par lot sur la table des factures mais j'ai dans la table des abonnés, donc les tables seraient les abonnés, les factures et les lots – seoppc