我想用 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),
我尝试了几个小时的不同查询,但没有得到正确的结果,我希望有人为我提供解决方案,我认为这很简单,但我在这里遗漏了一些东西。
亲切的问候,
比约恩
答案 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;