Mysql 如何对两个相关表中的列求和

Mysql 如何对两个相关表中的列求和,mysql,group-by,aggregate,Mysql,Group By,Aggregate,我有两张桌子发票和发票项目。我正在尝试获取每个客户的总付款和总数量之和。我尝试了以下查询: SELECT client_id, sum(total_amount), sum(it.quantity) as days_hired FROM `invoices` `iv` join invoice_items it on it.invoice_id=iv.invoice_id group by client_id, it.invoice_id 但是对于客户id 14,我得到的付款总额是19

我有两张桌子<代码>发票和
发票项目
。我正在尝试获取每个客户的
总付款
和总
数量
之和。我尝试了以下查询:

SELECT client_id,
sum(total_amount), sum(it.quantity) as days_hired
FROM  `invoices` `iv`
  join invoice_items it on  it.invoice_id=iv.invoice_id
group by client_id, it.invoice_id
但是对于客户id 14,我得到的付款总额是1908,而不是636。看起来此列的总和对于每个发票项都会重复。任何帮助都将不胜感激

invoices

invoice_id    client_id    total_payment
    36        13           530
    38        14           636


invoice_items

invoice_id    user_id      quantity     
36            2            2
38            3            2
38            4            2
38            5            2
预期产出:

13     530       2
14     636       6
你可以在下面试试-

SELECT client_id, sum(total_amount) as toal_amount, sum(it.quantity) as total_quantity
FROM  `invoices` `iv`
join
(
 select invoice_id,sum(quantity) as quantity from invoice_items group by invoice_id
)it on  it.invoice_id=iv.invoice_id
group by client_id, it.invoice_id
你可以在下面试试-

SELECT client_id, sum(total_amount) as toal_amount, sum(it.quantity) as total_quantity
FROM  `invoices` `iv`
join
(
 select invoice_id,sum(quantity) as quantity from invoice_items group by invoice_id
)it on  it.invoice_id=iv.invoice_id
group by client_id, it.invoice_id
尝试:

尝试:


请发布您的预期输出?您是否也可以更新发票和发票项目表?请发布您的预期输出?您是否也可以更新发票和发票项目表?这似乎有效。我将测试更多的发票。不过还有一个小问题。sum(数量)应该是sum(数量)作为数量。这似乎有效。我将测试更多的发票。不过还有一个小问题。总和(数量)应为总和(数量)作为数量。