SQL - 子查询的总和:我做错了什么?

SQL - Sum of a subquery: What are I am doing wrong?

我是 SQL 的新手,从几天前开始我的第一步。但要知道我已经到了死角。如果你愿意帮助我,那就太好了。

这些是必需的表格:

Table: Customer_Bonus
Bonus_ID、Customer_ID、金额
301, 100215, 100
302, 100924, 50
...

Table: Customer_Mapping
Customer_ID, 姓名, Adress_ID
100215, 美国能源部, 8203351
100924,Al Capone 服务有限公司,849215
...

Table: Customer_Bonus_to_Invoice
Invoice_IDNR、Bonus_ID、金额
216523, 301, 10
...
244854, 302, 10
...
284111, 301, 10
...
299569, 302, 20
...
316017, 302, 10
...

我要回答的问题:如何得到所有已用红利的总和?

这就是我想要的
Customer_ID,姓名,Bonus_ID,奖金总额,已用奖金总额
100215,美国能源部,301、100、20
100924, Al Capone 服务有限公司, 302, 50, 40
...

这是我一直在尝试的

SELECT 
Customer_Mapping.Customer_ID
Customer_Mapping.Name,
Customer_Bonus.Bonus_ID,
Customer_Bonus.Amount,
(SELECT 
SUM(Customer_Bonus_to_Invoice.Amount) 
FROM Customer_Bonus_to_Invoice 
WHERE Customer_Bonus_to_Invoice.Bonus_ID = Customer_Bonus.Bonus_ID) 
AS 'sum of used bonus'

FROM 
Customer_Bonus
Customer_Mapping
Customer_Bonus_to_Invoice 

WHERE
Customer_Bonus.Customer_ID = Customer_Mapping.Customer_ID

这是 JOIN 的工作吗?

给你:

SELECT CM.CUSTOMER_ID,
    CM.NAME ,
    CB.Bonus_ID,
    cb.Amount,
    SUM(cbi.Amount)
FROM CUSTOMER_MAPPING CM
INNER JOIN CUSTOMER_BONUS CB
ON CM.CUSTOMER_ID=CB.CUSTOMER_ID
INNER JOIN CUSTOMER_BONUS_TO_INVOICE CBI
ON cbi.Bonus_ID=cb.Bonus_ID
GROUP BY CM.CUSTOMER_ID,
    CM.NAME,
    CB.BONUS_ID,
    cb.Amount;

试试这个:

SELECT t1.Customer_ID,t1.Name,sum(t2.Amount) as    total_sum_of_bonus,sum(t3.Amount) as sum_of_used_bonus FROM Customer_Mapping as t1
LEFT JOIN Customer_Bonus as t2 on t1.Customer_ID=t2.Customer_ID
LEFT JOIN Customer_Bonus_to_Invoice as t3 on t2.Bonus_ID=t3.Bonus_ID
GROUP BY t1.Customer_ID,t1.Name,t3.Bonus_ID