Comment additionner plusieurs colonnes de données de plusieurs tables dans MySQL ?
P粉615886660
P粉615886660 2023-09-11 15:48:19
0
1
451

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

P粉615886660
P粉615886660

répondre à tous (1)
P粉946336138

Vous pouvez additionner les sommes dans des sous-requêtes et les réunir

SELECT `Start Balance`, Supplier_name , ID_A , `Invoice_value` , `Return_value` , `Start Balance` + IFNULL(Invoice_value,0) - ifnull(Return_value,0) total FROM Suppliers left JOIN Start_Balance ON ID_A = ID_B left JOIN ( SELECT `ID_C`, SUM(`Invoice_value`) `Invoice_value` FROM Invoices GROUP By ID_C) i ON ID_A = ID_C left JOIN ( SELECT `ID_D`, SUM(`Return_value`) `Return_value` FROM Returns GROUP BY `ID_D`) r ON ID_A = ID_D
Solde de départ Nom du fournisseur ID_A Invoice_value Return_value Total
1000 Pomme 1 700 100 1600
1000 Xiaomi 2 800 75 1725
1000 Nokia 3 650 vide 1650
vide OPPO 4 vide vide vide

Violon

    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!