J'ai 4 tables :
1-Fournisseur
ID_A | Nom du fournisseur |
---|---|
1 | Pomme |
2 | Xiaomi |
3 | Nokia |
4 | OPPO |
2-Démarrer le solde
ID_B | Solde de départ |
---|---|
1 | 1000 |
2 | 1000 |
3 | 1000 |
4 | vide |
3- Facture
ID_C | Valeur de la facture |
---|---|
1 | 200 |
1 | 500 |
2 | 800 |
3 | 250 |
3 | 400 |
4 | vide |
4-Retour
ID_D | Return_value |
---|---|
1 | 100 |
2 | 50 |
2 | 25 |
3 | vide |
4 | vide |
Méthode arithmétique pour afficher les données en conséquence :
Solde de départ + Facture - Retours = Solde final
J'essaie d'utiliser UNION et JOINS dans MySQL :
SELECT null , Supplier_name , ID_A , SUM(Invoice_value) , null , null FROM Suppliers inner JOIN Invoices ON ID_A = ID_C group by ID_A UNION ALL SELECT null , Supplier_name , ID_A , null , SUM(Return_value), null FROM Suppliers left JOIN Returns ON ID_A = ID_D group by ID_A UNION ALL SELECT Start Balance , Supplier_name, ID_A , null , null ,( Start Balance + ifnull(SUM(Invoice_value),0) - ifnull(SUM(Return_value),0) ) FROM Suppliers left JOIN Start Balance ON ID_A = ID_B left JOIN Invoices ON ID_A = ID_C left JOIN Returns ON ID_A = ID_D group by ID_A
Je m'attends à ce que ce résultat soit :
Solde de départ | Nom du fournisseur | ID_A | Valeur de la facture | Return_value | Fin_Balance |
---|---|---|---|---|---|
1000 | Pomme | 1 | 700 | 100 | 1600 |
1000 | Xiaomi | 2 | 800 | 75 | 1725 |
1000 | Nokia | 3 | 650 | vide | 1650 |
vide | OPPO | 4 | vide | vide | vide |
Mais ça ne marche pas bien, ça montre les résultats sur différentes lignes et le calcul du solde final est faux Quel est le bon code pour afficher ce résultat
Vous pouvez additionner les sommes dans des sous-requêtes et les réunir
Violon