一个结果中来自不同表的不同列的 SQL 求和

时间:2021-03-28 21:24:40

标签: sql sum

我想用 SQL 得到一个结果,显示两个不同表中两个不同列的总和,并且是一个额外的客户名称表。

表 1 客户ID, 客户名称

表 2 客户ID, Amount_Debt, Amount_Debt_paid

表 3 客户ID, Amount_Open_Orders

我想要一个包含以下列的表格

客户 ID, 顾客姓名, TotalAmountDebt = Table2 SUM(Amount_Debt - Amount_Debt_paid), TotalAmountOpenOrders =Table3 SUM(Amount_Open_Orders),

我尝试了几个小时的不同查询,但没有得到正确的结果,我希望有人为我提供解决方案,我认为这很简单,但我在这里遗漏了一些东西。

亲切的问候,

比约恩

2 个答案:

答案 0 :(得分:0)

聚合前求和:

select c.*, t2.*, t3.*
from customers c left join
     (select t2.customer_id, sum(t2.amount_debt) as amount_debt,
             sum(t2.amount_debt_paid) as amount_debt_paid
      from table2 t2
      group by t2.customer_id
     ) t2
     on c.customer_id = t2.customer_id left join
     (select t3.customer_id, sum(t3.Amount_Open_Orders) as Amount_Open_Orders
      from table3 t3
      group by t3.customer_id
     ) t3 
     on c.customer_id = t3.customer_id;

答案 1 :(得分:0)

我填写了建议的代码,现在出现错误

消息 102,级别 15,状态 1,第 7 行 '.' 附近的语法不正确。 消息 102,级别 15,状态 1,第 12 行 'dbo' 附近的语法不正确。

代码:

enter code here
    SELECT        dbo.FI101CUSTOMER.*, dbo.FI101DEPT.*, dbo.HB101ORDER.*

    FROM            dbo.FI101CUSTOMER left JOIN 
    (select dbo.FI101DEPT.CUST_ID, SUM(dbo.FI101DEPT.BETRAG -            
    dbo.FI101DEPT.BETRAGZAHLUNG) as Value1
    from dbo.FI101DEPT
    group by dbo.FI101DEPT.CUST_ID
    ) dbo.FI101DEPT
    ON dbo.FI101CUSTOMER.CUST_ID = dbo.FI101DEPT.CUST_ID left join
    (select HB101ORDER.CUST_ID, SUM(HB101ORDER.bruttovkwert) as    Value2 
    from HB101ORDER
    group by dbo.HB101ORDER.CUST_ID
    ) dbo.HB101ORDER
    ON dbo.FI101CUSTOMER.CUST_ID = dbo.HB101ORDER.CUST_ID;
相关问题