如何对mysql中多个表的多列数据进行求和?
P粉615886660
P粉615886660 2023-09-11 15:48:19
0
1
359

我有 4 张桌子:

1-供应商

ID_A 供应商名称
1 苹果
2 小米
3 诺基亚
4 OPPO

2-开始余额

ID_B 起始余额
1 1000
2 1000
3 1000
4

3- 发票

ID_C 发票值
1 200
1 500
2 800
3 250
3 400
4

4-返回

ID_D Return_value
1 100
2 50
2 25
3
4

结果显示数据的算术方法:

起始余额 + 发票 - 退货 = 最终余额

我尝试在 mysql 中使用 UNION 和 JOINS :

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

我预计这个结果是:

起始余额 供应商名称 ID_A 发票值 Return_value End_Balance
1000 苹果 1 700 100 1600
1000 小米 2 800 75 1725
1000 诺基亚 3 650 1650
OPPO 4

但效果不佳,它在不同的行中显示结果,并且最终余额的计算是错误的 请问显示此结果的正确代码是什么

P粉615886660
P粉615886660

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!